Подсчитать количество чисел в последовательности больше предыдущего - C (СИ)
Формулировка задачи:
В файле записана последовательность неизвестной длины , подсчитать количество чисел в ней больше предыдущего, заранее спасибо.
Решение задачи: «Подсчитать количество чисел в последовательности больше предыдущего»
textual
Листинг программы
- #ifdef _MSC_VER
- #define _CRT_SECURE_NO_WARNINGS
- #endif
- #include <stdlib.h>
- #include <stdio.h>
- size_t f(const char *filename)
- {
- size_t count = 0;
- int pred = 0, current = 0;
- FILE *file = fopen(filename, "r");
- if (!file)
- return count;
- if (fscanf(file, "%d", &pred))
- {
- while (!feof(file))
- {
- if (fscanf(file, "%d", ¤t))
- {
- if (current > pred)
- count++;
- pred = current;
- }
- }
- }
- return count;
- }
- int main(void)
- {
- return !printf("%u\n", f("ghost.txt"));
- }
Объяснение кода листинга программы
В данном коде определена функция f
, которая принимает в качестве аргумента имя файла и считает количество чисел в этом файле, которые больше предыдущего.
В функции main
создается команда для вывода в консоль количества чисел в файле ghost.txt
, после чего выполняется команда.
- В начале кода определяются необходимые заголовочные файлы.
- Функция
f
принимает в качестве аргумента имя файла и инициализирует переменныеcount
,pred
иcurrent
. - Открывается файл с помощью функции
fopen
и проверяется его успешное открытие. - В цикле
while
с помощью функцииfscanf
считываются числа из файла в переменнуюcurrent
. - Если считанное число больше предыдущего, увеличивается счетчик
count
. - После окончания цикла, функция возвращает значение счетчика
count
. - В функции
main
создается команда для вызова функцииf
с аргументомghost.txt
и выводится результат в консоль.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д