получил домашнее задание, чтобы произвести программу, которая загружает и отображает двойной точности случайных чисел с размером массива 20. я знаю его неаккуратно, но не хорошо на этомдвойной точности случайных чисел массив
#include <iostream> //required for cin, cout, endl
#include <cstdlib> //required for setw(), setfill()
#include <iomanip>
using namespace std;
void printArray(int arr[]);
void fillRandArray(int arr[]);
void fillDecimalArray(double dArr[]);
void printDecimalArray (double dArr[]);
int main()
{
int random[21];
double decimal[21];
rand();
fillRandArray(random);
fillDecimalArray(decimal);
printArray(random);
printDecimalArray(decimal);
cin.get();
cin.get();
return 0;
}
void fillRandArray(int arr[])
{
for (int i = 1; i < 21; i++)
{
arr[i] = rand() % 100 + 1;
}
}//end load of rand array
void fillDecimalArray(double dArr[ ])
{
for (double i = 1; i <21; i++)
{
dArr[i] = static_cast<double>(rand()%100)/10;
}
}
void printArray(int arr[])
{
cout << " 5x4 Array" <<endl;
cout <<endl;
int cols = 5;
for(int i = 1; i < 21; i++)
{
cout << setw(5) << setfill(' ');
cout << arr[i];
if(i%cols == 0)
cout << endl;
}//end print array
}//end of printArray()
void printDecimalArray (double dArr[])
{
int cols = 4;
for (double i = 1; i <21; i++)
{
cout << setw(5) << setfill(' ');
int precision = 2;
cout << dArr[i];
cout << endl;
}
}
потребности, которые будут отображаться в 4x5 таблице ошибки «недопустимые типы„двойной * [двойные]“для массива подстрочного»
принял ваш совет, и теперь он компилирует, что отлично, но десятичный массив имеет диапазон .1-1.0, начиная с 1.00-100.00 любые идеи? –
царапины, что, понял, но моя двойная точность не работает –
Это странно. Я бы ожидал 'dArr [i] = static_cast (rand()% 100)/10;', чтобы дать значения 0 - 9.9 - значения вашего двойника будут двойным представлением целых чисел от 0 до 99, а затем вы разделите это на 10 - так 0-9.9. То, что люди часто делают, - это сбрасывать rand(), чтобы удвоить, делить это на RAND_MAX, а затем умножить этот результат (убедитесь, что вы делаете это в правильном порядке или получаете переполнение) на желаемый максимальный диапазон. Таким образом, вы получаете двойное равномерно распределенное по диапазону 0-1, а затем умножаете его на 100 или независимо от максимального значения. –
xaxxon