Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
 Аватар для Enzzio
72 / 30 / 4
Регистрация: 29.05.2010
Сообщений: 478

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

01.11.2011, 05:19. Показов 600. Ответов 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. Пришлось переходить на инт по причине, что инт нужен в рандоме после %, так как интервал разный, т.е. считается.

Как решить проблему, чтобы данные выводились корректные, а не нули, и чтобы рандом работал?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.11.2011, 05:19
Ответы с готовыми решениями:

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

Enum со сложными типами в качестве значений
Приветствую! Вопрос мой прост и глуп, но мне в голову никак не приходит на него ответ. Допустим, есть у меня поле в классе ...

Путаница с типами данных TCHAR и char. Какой тип данных выбрать?
Я создавал тему в соседнем разделе:https://www.cyberforum.ru/cpp-networks/thread1119035.html Насколько я понял, то POST-данные в TCHAR...

2
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
01.11.2011, 08:09
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].
0
 Аватар для Enzzio
72 / 30 / 4
Регистрация: 29.05.2010
Сообщений: 478
21.11.2011, 22:39  [ТС]
В коде выше вместо f выводит -1.#IND00
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2011, 22:39
Помогаю со студенческими работами здесь

Разработка программ с интегрированными типами данных (структуры данных)
Может кто-нибудь помочь с этим? Как задать структуру я, вроде, понимаю. Но не могу понять, как с ней правильно работать. Описать...

Можно ли задать неравномерный рандом при вставке значений
Вычитал, что при массовой вставке рандомных значений, SQL делает равномерное распределение вставки значений (примерно равное количество...

Как вывести линейный список с различными типами значений ячеек
Не подскажите, как это реализовать? Из файла считывается последовательность цифр a0 a1 a2 и тд, из них нужно создать линейный список вида...

Работа с циклами и подсчёт значений в массиве. Запутался в циклах, никак не могу понять
Рассматривается 7 программных продуктов, имеющих одинаковое назначение. Их оценивает 5 экспертов. Из текстового файла считываются...

Объясните, пожалуйста в чем разница между типами-значениями и ссылочными типами?
В чем разница между типами-значениями и ссылочными типами. Привести пример типов-значений и ссылочных типов в с#. Какой пример можно...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru