Определение количества отрицательных чисел в файле - C (СИ)
Формулировка задачи:
Дан текстовый файл. В нём записано N кол-во чисел. Вычислить кол-во отрицательных чисел.
Ребят, по сути лёгкая задача, но сижу уже туплю 3 часа, не могу связать всё это дело с файлом. Т.е если с клавы вводить, то всё нормально считает, а вот как из файла прочитать эти числа для меня нерешаемая уже как 3 часа загадка
Решение задачи: «Определение количества отрицательных чисел в файле»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE *fi; char *Fname="d:\\123.txt"; int n=0,p; if ((fi=fopen(Fname,"r"))==NULL) { printf("Error by open\n"); system("PAUSE"); return 0; } else while (fscanf(fi,"%d",&p)!=EOF) if (p < 0) n++; fclose(fi); printf("Negative numbers: %d\n",n); system("PAUSE"); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и стандартными функциями
- Объявление переменных: файловый указатель
fi
, строкаFname
с путем к файлу, переменнаяn
для подсчета отрицательных чисел и переменнаяp
для хранения прочитанного числа - Проверка открытия файла. Если файл не открылся, выводится сообщение об ошибке и вызывается функция
system(
PAUSE)
, которая приостанавливает выполнение программы до нажатия клавишиPAUSE
. Затем возвращается 0, чтобы завершить работу программы - Если файл успешно открылся, выполняется цикл
while
, который продолжается, пока функцияfscanf(fi,
%d,&p)
не вернетEOF
. Это означает, что достигли конца файла. Внутри цикла проверяется, является ли текущее число отрицательным. Если это так, увеличивается счетчикn
- После окончания чтения файла, функция
fclose(fi)
закрывает файл, а функцияprintf(
Negative numbers: %d\n,n)
выводит количество найденных отрицательных чисел. - Вызов функции
system(
PAUSE)
для приостановки выполнения программы до нажатия клавишиPAUSE
- Возврат 0, чтобы завершить работу программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д