Генератор псевдослучайных чисел

225
15 декабря 2016, 16:11

Пишу на С++. Задача в состоит в том, чтобы посчитать значения функции,используя генератор случайных чисел. E<=-0.02 a F<=0.02. Когда открываю файл, он оказывается пустым. Подскажите, в чем ошибка.

#include <iostream>
#include <stdio.h>
#include <math.h>
#include <cstdlib>
 using namespace std;
    int main () 
    {
    float t=0, b=0, c=0;
    bool E[1]={}, F[1]={};
    char  d = ';';   
    int i=0;
    FILE *file; 
    file = fopen("kola.csv", "w+");
    while  (i<=1001)
      {
        E[i]=rand()<=(-0.02);
        F[i]=rand()<=(0.02);
        t=t+0.01; 
        b=cos(t+E[i]);
        c=0.5*t*cos(t+F[i]);
        fprintf (file, "%f%c%f\n",b,d,c);
      i++; 
      }
    fclose(file);   
    return 0;
    }
Answer 1

А вы на вывод программы хоть смотрели?

bool E[1]={}, F[1]={};
...
E[i]=rand()<=(-0.02);

Это что такое? Чему у вас i может быть равно? Больше же 1? Больше, значит и массив надо определять большим, либо вместо массивов использовать простые переменные (что будет разумнее)

Про вывод забыл написать, что программа выдает segmentation fault, что в данном случае как раз и означает выход за пределы массива

Answer 2

А еще у вас нет генератора случайных чисел реально, rand нужно инициализировать при помощи srand (time(NULL)); иначе он все время выдает одну и ту же последовательность, еще надо добавить #include <time.h> . Строго говоря, ему можно скормить любой unsigned, но со временем проще всего

READ ALSO
Winforms vs winapi

Winforms vs winapi

У меня старая ОС(windows xp) и компилятор(mvs 2010) на данный момент доступны только две технологии писать свои форточки winforms и голый winapi, какую технологию...

228
Запросить по ip, указав при этом HOST Qt 5+

Запросить по ip, указав при этом HOST Qt 5+

Стоит задача получить страницу с сайта, войдя по ip, при этом указать HOST и путь страницыРеализация нужна для Qt 5+ (так уж настроена сеть)

205
STL не работает multimap::equal_range()

STL не работает multimap::equal_range()

изучаю STL, работаю с multimap:

248
Аргументы int argc, char* argv[]

Аргументы int argc, char* argv[]

Можете, пожалуйста, объяснить, как пользоваться этой программой через командную строку

224