Построчное чтение из файла - 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();
}

Объяснение кода листинга программы

  1. Объявлены массив n[50] и переменная sum для хранения суммы отрицательных чисел.
  2. В цикле for заполняется массив n[50] случайными числами от -50 до 50.
  3. Открывается файл chisla.txt для записи (режим wt).
  4. В цикле for числа из массива n[50] записываются в файл chisla.txt с помощью функции fprintf.
  5. Файл закрывается функцией fclose.
  6. Открывается файл chisla.txt для чтения (режим r).
  7. Проверяется, открылся ли файл успешно, при неудаче выводится сообщение об ошибке.
  8. Если файл успешно открыт, то в цикле while с помощью функции fscanf считываются числа из файла.
  9. Если считанное число отрицательное, то оно прибавляется к сумме.
  10. После окончания чтения файла, закрывается файл chisla.txt.
  11. Выводится сообщение с суммой отрицательных чисел.
  12. Программа завершается вызовом функции getch.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5
Похожие ответы