Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Работа с файлом


Автор: MJBuster 23.4.2012, 09:35
Есть файл, в котором задана числовая последовательность.
Надо написать программу находящую сумму всех элементов строки(вещественных чисел), делёных на их количество.
Есть нароботка:
Код

#include <stdio.h>
int i, sum;
in main();
{
char s[10];
FILE *fin, *fout;
fin=fopen("in.dat", "r");
fout=fopen("out.dat", "w");
while (NULL!=fscanf(s, 10, fin))
{
i=0;
while (s[i]='\0');
i=fscanf(fin, "%f", &i);
if (s[i]<0)break;
sum=s[i]        \\???
fprint (fout, "%f", sum);
}
fclose (fin);
fclose (fout);
}

Что нужно исправить и дописать?
Помогите пожалуйста

Автор: bsa 23.4.2012, 10:33
MJBuster, во-первых, комментарии должны начинаться с //, а не с \\
во-вторых, где у тебя чтение строки?
в-третьих, где у тебя сложение?
в-четвертых, где у тебя подсчет количества найденных чисел?
в-пятых, где у тебя деление?
в-шестых, где у тебя вывод результата?
в-седьмых, после каждой операции должна быть точка с запятой.

Автор: borisbn 23.4.2012, 11:19
Цитата(bsa @  23.4.2012,  10:33 Найти цитируемый пост)
в-седьмых, после каждой операции должна быть точка с запятой.

он и поставил
Цитата(MJBuster @  23.4.2012,  09:35 Найти цитируемый пост)
while (s[i]='\0');

 smile 

Автор: bsa 23.4.2012, 12:09
кстати. в-восьмых, fscanf читает число с плавающей точкой в целочисленную переменную. Это неправильно...

Вывод.
Цитата(MJBuster @  23.4.2012,  10:35 Найти цитируемый пост)
Что нужно исправить и дописать?
Ничего. Нужно стереть и написать заново.

Автор: MJBuster 23.4.2012, 19:09
Цитата(bsa)
Ничего. Нужно стереть и написать заново.

не подскажите, как правильно будет?)

Автор: bsa 24.4.2012, 10:42
MJBuster, подскажу. Сначала открываешь входной и выходной файлы (fopen), затем в цикле построчно читаешь входной (fgets или getline тебе в помощь). Затем разбиваешь строку на токены (strtok), каждый из которых - вещественное число, затем преобразуешь их к вещественному типу (atof), суммируешь и считаешь общее количество. Затем делишь сумму на количество и получаешь среднее, которое уже записываешь в выходной файл (fprintf). Закрываешь файлы.

Автор: MJBuster 24.4.2012, 20:46
Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)