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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ помогите написать программу пожалуйста, срочно нужна http://www.cyberforum.ru/cpp-beginners/thread375901.html
В файле находятся только целые числа. Определить, имеет ли последовательность чисел, находящихся в файле, нечетную длинну, если да, то переменной middle присвоить значение среднего элемента файла. В противном случае присвоить этой переменной значение первого числа файла
C++ Ошибка компилятора при работе с fstream Опыта с ним мало, работал всё время c freopen. Но тут нельзя им. Короче простейшая прога: есть база данных рабочих, вводят с консоли фамилию рабочего и ты должен вывести о нём информацию. Код: #include <iostream> #include <string> #include <cstdio> #include "Workers.h" #include <fstream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread375900.html
3-x мерный масив. C++
Подскажыте как сделать указатель на 3-х мерный масив???. Желательно пример. Спасибо.
Исключения С++ C++
С++. Перечитал уже много учебников, видел много примеров, но никак не пойму как пользоваться блоками try catch.. Может хоть кто-нибудь сможет мне объяснить для чего они нужны и как их писать.
C++ Как посчитать сумму двух чисел в MS Visual Studio 2008? http://www.cyberforum.ru/cpp-beginners/thread375892.html
Доброго дня и ночи, товарищи программисты! До сих пор я писал программы в Borland C++ Builder 6, но последнее время задумываюсь о переходе на MS Visual Studio. В связи с єтим, я хотел бы для начала поинтересоваться, как заставить вот эту простенькую программу суммы двух чисел работать в MS VS 2008? Консольное приложение создал. Ввёл код в разделе Source Files: // Summa1.cpp : Defines the...
C++ Измерение времени DWORD dwStart, dwFinish, dwDif; dwStart=GetTickCount(); MatrixSum(SizeOfMatrix,Matrix,Matrix2,MatrixRes); dwFinish=GetTickCount(); dwDif=dwFinish-dwStart; вкраце: есть набор функций для работы с матрицами, не ясно только одно. При измерении времени с малыми размерами матриц "время" выполнения равно "0", но также и при выполнении определенных функций с большими размерами тоже отображает... подробнее

Показать сообщение отдельно
Enzzio
15 / 17 / 2
Регистрация: 29.05.2010
Сообщений: 320

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

Как решить проблему, чтобы данные выводились корректные, а не нули, и чтобы рандом работал?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru