Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Enzzio
15 / 17 / 2
Регистрация: 29.05.2010
Сообщений: 320
#1

Ноли вместо значений и нерабочий рандом, запутался с типами данных - C++

01.11.2011, 05:19. Просмотров 294. Ответов 2
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <cstdlib>
#include <ctime>
 
int main()
{   
        FILE *in;//ГґГ*éë èñõîäГ*ûõ äïГ*Г*ûõ
        FILE *out;// ГґГ*éë Г*Г* Г§Г*ГЇГЁГ±Гј
        FILE *ele;//Г§Г*ГЇГЁГ±Гј ГЇГ*Г°Г*ìåòðîâ ýëåìåГ*òîâ
 
        FILE *tinput;//ïðîâåðêГ* ñ÷èòûâГ*Г*ГЁГї èñõîäГ*ûõ Г¤Г*Г*Г*ûõ
        
        double f; //F - ГЅГІГ*ëîГ*
        //Г¬Г*Г±Г±ГЁГўГ»
        int i, j, x[i], x1[5], x2[5];
        
        float p1=0.1;//ïðîöåГ*ГІ îòêëîГ*ГҐГ*ГЁГї ГЁ åìêîñòü
        float Sm, Sd, Me, De;//Г¬Г*Г±Г±ГЁГў ГЁГ*òåðâГ*ëîâ
        float xr0[1000], xr1[1000], xr2[1000], xr3[1000], c[i], e[i], fr[i];
 
        /*Г·ГІГҐГ*ГЁГҐ èñõîäГ*ûõ Г¤Г*Г*Г*ûõ*/
        in = fopen("input.txt", "r");
        for(i=0; i < 5; i++)
        {
                 fscanf(in, "%i", &x[i]);
                 x1[i]=x[i]/10;
                 x2[i]=x[i]-x1[i];
                 x1[i]=x1[i]*2;
        }
        fclose(in);
        /**/
        /*ïðîâåðêГ* ГЁГ*òåðâГ*ëîâ*/
        tinput = fopen("tinput.txt", "w");
        for(i=0; i < 5; i++)
        {
                 fprintf(tinput, "%i ", x[i]);
                 fprintf(tinput, "%i ", x1[i]);
                 fprintf(tinput, "%i\n", x2[i]);
        }
        fclose(tinput);
        /**/
        /*ïîäñ÷èòûâГ*ГҐГ¬ F ГЅГІГ*ëîГ*Г*ГіГѕ*/
        f=2*x[4]*(x[2]+x[3])*log((1+2*((x[1]*x[2]+x[0]*x[3])/(x[0]*(x[2]+x[3])))))/1000000;
        f=f/1000000;
        /**/
        /*Г§Г*ГЇГЁГ±Гј F ГЅГІГ*ëîГ*Г*îé Гў ГґГ*éë*/
        FILE *tfid;
        tfid = fopen("tfid.txt","w");
        fprintf(tfid, "%e", f);
        fclose(tfid);
        /**/
        /*Âûáîð ГЁГ§ ГЁГ*òåðâГ*ëîâ ñëó÷Г*Г©Г*ûõ 1000 Г§Г*Г*Г·ГҐГ*ГЁГ©*/
        srand(time(NULL));
        int ix1[5];
        for(i=0; i<5; i++)
        {
                 ix1[i]=x[i]/10*2;
        }
        ele = fopen("ele.txt","w");//îòêðûòèå ГґГ*éëГ* Г*Г* Г§Г*ГЇГЁГ±Гј ГµГ*Г°Г*êòåðèñòèê ýëåìåГ*òîâ
        for(i=0; i<1000; i++)
        {
                 fprintf(ele, "%f ", rand()%ix1[0] + x2[0]);                 
                 fprintf(ele, "%f ", rand()%ix1[1] + x2[1]);
                 fprintf(ele, "%f ", rand()%ix1[2] + x2[2]);
                 fprintf(ele, "%f ", rand()%ix1[3] + x2[3]);
                 fprintf(ele, "%f \n", rand()%ix1[4] + x2[4]);
        }
        fclose(ele);
Возникла проблема в виде конфликта типа данных, т.е. у меня в некоторых местах выводит 0 вместо числа, а именно значение f. Пришлось переходить на инт по причине, что инт нужен в рандоме после %, так как интервал разный, т.е. считается.

Как решить проблему, чтобы данные выводились корректные, а не нули, и чтобы рандом работал?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2011, 05:19     Ноли вместо значений и нерабочий рандом, запутался с типами данных
Посмотрите здесь:

Рандом значений вектора - C++
Задача- написать игру камень,ножници,бумага. Используя вектор для хранения значений, и switch . Не получаться рандом из вектора. ...

Проблема с типами данных - C++
В одной функции одномерный динамический массив заполняется случайными числами // Çàïîëíåíèå ìàññèâà ñëó÷àéíûìè ÷èñëàìè int...

Возможная пробелами с типами данных - C++
Здравствуйте! Есть следующие задание: http://s5.********************/uploads/images/2013/10/f918d6e0a9bf1c4476ca287477d9619b.png ...

Пoмoгите со строковыми типами данных - C++
Дан текст, состоящий не менее чем из пяти слов. Вывести на экран слова, которые имеют одинаковые окончания &quot;ИЯ&quot;,&quot;ИСТ&quot;,&quot;ИКА&quot;. С этой темой...

Массив с двумя типами данных - C++
&quot;Дан двумерный массив,в нем хранится информация о рабочих и их номера телефонов.Реализовать поиск по Фамилии и вывода телефона&quot; Подкиньте...

Помогите разобраться с типами данных - C++
Здравствуйте! Размер (в байтах) объектов каких типов данных зависит от разрядности процессора?

Организация управления типами данных - C++
Поясните, пожалуйста, как происходит разделение типов данных в памяти? как компилятор определяет в каких ячейках хранятся соответствующие...

Работа со структурными типами данных - C++
Задание: В файле записан массив A(nxm) целых чисел. Структура файла следующая: сначала хранится n и m, а затем массив A. Определить в нем...

Ошибка с типами данных в подпрограмме - C++
Не знаю, правильно ли я задал названия темы, суть проблемы следующая: Нужно было создать программу с структурой данных, в которой по...

Работа с типами данных в массиве - C++
Всем доброго времени суток , помогите выяснить одну вещь. Есть у меня массив типа char. Вот к примеру {1f-21df } Каким образом...

Двухмерный массив с разными типами данных - C++
Доброе время суток. Есть задание Задание поменять нет возможности, да и самому доделать хочется. Есть кое какие наработки, и...

Переписать программу с разными типами данных - C++
Тема: Использование указателей для работы со сложными типами данных Вот я хочу чтобы мне помогли переписать эту программу чтобы она...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
01.11.2011, 08:09     Ноли вместо значений и нерабочий рандом, запутался с типами данных #2
rand() возвращает int. Поэтому
C++
1
2
3
4
5
fprintf(ele, "%i ", rand()%ix1[0] + x2[0]);                 
fprintf(ele, "%i ", rand()%ix1[1] + x2[1]);
fprintf(ele, "%i ", rand()%ix1[2] + x2[2]);
fprintf(ele, "%i ", rand()%ix1[3] + x2[3]);
fprintf(ele, "%i\n", rand()%ix1[4] + x2[4]);
И проверь значения ix1[0], x2[0], ix1[1], x2[1], ix1[2], x2[2], ix1[3], x2[3], ix1[4], x2[4].
Enzzio
15 / 17 / 2
Регистрация: 29.05.2010
Сообщений: 320
21.11.2011, 22:39  [ТС]     Ноли вместо значений и нерабочий рандом, запутался с типами данных #3
В коде выше вместо f выводит -1.#IND00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru