Подсчитать количество чисел в последовательности больше предыдущего - 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и выводится результат в консоль.