Построчное чтение из файла - C (СИ) (77947)
Формулировка задачи:
в файле числа от -50 до 50, записанные каждое в отдельной строке. нужно посчитать сумму отрицательных элементов файла
Чего не хватает?
for (i=0; i<50; i++) { fscanf(fo,"%d\n",&y); if(y<0) { t+=y; } }
Решение задачи: «Построчное чтение из файла»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <stdlib.h> void main() { int i,n[50],sum,val; for (i=0; i<50; i++) { n[i]=rand()%100-50; } FILE*fo; fo=fopen("chisla.txt","wt"); for (i=0; i<50; i++) fprintf(fo, "%d\n",n[i]); fclose(fo); fo=fopen("chisla.txt", "r"); if(!fo) printf("Error open data.txt\n"); else { while(!feof(fo)) { if(fscanf(fo,"%d\n",&val)) if(val < 0) sum += val; } fclose(fo); printf("Sum of negative : %d\n",sum); } getch(); }
Объяснение кода листинга программы
- Объявлены массив n[50] и переменная sum для хранения суммы отрицательных чисел.
- В цикле for заполняется массив n[50] случайными числами от -50 до 50.
- Открывается файл
chisla.txt
для записи (режимwt
). - В цикле for числа из массива n[50] записываются в файл
chisla.txt
с помощью функции fprintf. - Файл закрывается функцией fclose.
- Открывается файл
chisla.txt
для чтения (режимr
). - Проверяется, открылся ли файл успешно, при неудаче выводится сообщение об ошибке.
- Если файл успешно открыт, то в цикле while с помощью функции fscanf считываются числа из файла.
- Если считанное число отрицательное, то оно прибавляется к сумме.
- После окончания чтения файла, закрывается файл
chisla.txt
. - Выводится сообщение с суммой отрицательных чисел.
- Программа завершается вызовом функции getch.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д