Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Evgen2sat
19 / 19 / 13
Регистрация: 22.11.2011
Сообщений: 101
1

Программа не выводит ответ с типом float

24.02.2012, 23:52. Просмотров 1058. Ответов 4
Метки нет (Все метки)

в общем написал функцию которая берет элементы из файла и взависимости от значения элемента считает одну из 3 формул. Нужно чтобы ответ был c типом float, но почему то так не работает.
Вот собственно код функции:
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
#include <stdio.h>
#include <malloc.h>
#include "file_work.h"
int FunctionG(char *name)
{
    int z=CountElem(name);
    float*Mas=(float*)malloc(z*sizeof(int));
    FILE*fp=fopen(name,"r");
    for(int i=0; i<z; i++)
    {
        fscanf(fp,"%d ", &Mas[i]);  
    }
    float var1[100];
    for(int i=0;i<z;i++)
    {
        if(Mas[i]<5)
        {
            var1[i]=5*Mas[i];
            printf("Y[%d]= %f\n", i,var1[i]);
        }
        else if(Mas[i]>=5 && Mas[i]<=30)
        {
            var1[i]=(Mas[i]-5)/Mas[i];
            printf("Y[%d]= %f\n", i,var1[i]);
        }
        else if(Mas[i]>30)
        {
            var1[i]=10*Mas[i]/3;
            printf("Y[%d]= %3.f\n", i,var1[i]);
        }
        
    }
    
    fclose(fp);
    return 0;
}
Подскажите в чем ошибка
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2012, 23:52
Ответы с готовыми решениями:

Программа не выводит ответ
Почему не выводит s на экран? #include &lt;stdio.h&gt; //директивы препроцессора...

Программа не выводит ответ
программа не выводит ответ, после ввода &quot;.&quot; и нажатия на ентер #include...

Программа выводит ответ и в консоль и в файл, хотя нужно только в консоль
когда выбираю вывести в консоль, программа выводит ответ и в консоль, и в файл...

При любых данных ответ выводит 0.00
Добрый вечер! Помогите, пожалуйста, найти ошибку. При любых данных ответ...

При смене Float на double программа выдает нули
Доброго времени. При вводе следующего кода float f; ...

4
renald
35 / 35 / 8
Регистрация: 11.02.2012
Сообщений: 105
25.02.2012, 00:07 2
У тебя справа var1[i]=..... - целочисл. переменные, а значит и операции целочисл. (например, 5/2=2, а нужно 5./2.=2.5)
Короче, числа пиши с точкой, а значения в Mas переведи в float
0
Toshkarik
1155 / 871 / 91
Регистрация: 03.08.2011
Сообщений: 2,434
Завершенные тесты: 1
25.02.2012, 00:43 3
Это было бы справедливо если в выражение все элементы были целочисленные. В противном случае идет неявное преобразование к наибольшему типу. То есть если будет
C++
1
double a = 10;
то оператор
C++
1
std::cout << a / 3;
выведет 1.33333.

Добавлено через 18 минут
А что именно выводится?
0
Том Ардер
Модератор
Эксперт по математике/физике
3843 / 2455 / 328
Регистрация: 15.06.2009
Сообщений: 4,501
25.02.2012, 02:53 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Строка 7
Цитата Сообщение от Evgen2sat Посмотреть сообщение
float*Mas=(float*)malloc(z*sizeof(int));
Надо
sizeof(float)

Строка 11
Цитата Сообщение от Evgen2sat Посмотреть сообщение
fscanf(fp,"%d ", &Mas[i]);
Тип данных Mas[i] (float) не соответствует формату ввода (для целых)
0
Evgen2sat
19 / 19 / 13
Регистрация: 22.11.2011
Сообщений: 101
27.02.2012, 09:55  [ТС] 5
всем спасибо, разобрался
0
27.02.2012, 09:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 09:55

Почему программа не вычисляет значение выражения, используя float?
Вот текст программы. Используя Int все работает, но с float выводит только 0....

Программа выдаёт неверный ответ
Помогите подправить программу, пожалуйста: Найти все двузначные числа, сумма...

Error C2664: fmatr: невозможно преобразовать параметр 1 из 'float [4][4]' в 'float *'
#include &quot;stdafx.h&quot; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; /* Описание...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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