Простая задача на с - C (СИ) (154271)
Формулировка задачи:
Здравствуйте! Помогите пожалуйста написать программу на языке С. "Пусть задан файл целых чисел. Определите максимальную длину последовательности подряд идущих четных его компонент. Описать функцию."
Решение задачи: «Простая задача на с»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> size_t GetMaxLength(FILE* f) { size_t count = 0; size_t max = 0; int digit; while (fscanf(f, "%d", &digit) == 1) { if ((digit % 2) == 0) { count++; } else if (count) { if (max < count) { max = count; } count = 0; } } return (max > count) ? max : count; } int main(int argc, char* argv[]) { if (argc != 2) { fprintf(stderr, "Usage: program <FILE>\n"); return EXIT_FAILURE; } FILE* f = fopen(argv[1], "r"); if (f == NULL) { perror(argv[1]); return EXIT_FAILURE; } printf("max length = %d\n", GetMaxLength(f)); fclose(f); return EXIT_SUCCESS; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
и . - Определяется функция GetMaxLength, которая принимает в качестве аргумента файловый указатель и возвращает размер максимальной длины.
- Внутри функции объявляются переменные count и max, которые используются для хранения текущего количества и максимального количества нечетных чисел соответственно.
- Переменная digit используется для считывания каждого числа из файла.
- В цикле while с помощью функции fscanf считывается каждое число из файла.
- Если число четное, то увеличивается переменная count.
- Если число нечетное и предыдущее количество было больше нуля, то проверяется, является ли текущее количество больше максимального.
- Если текущее количество больше максимального, то обновляется значение переменной max.
- После окончания цикла, функция возвращает максимальное значение из переменной count и max.
- В функции main проверяется корректность использования программы.
- Открывается файл с помощью функции fopen.
- Если файл не может быть открыт, выводится сообщение об ошибке и возвращается EXIT_FAILURE.
- Выводится сообщение с максимальным значением длины.
- Файл закрывается с помощью функции fclose.
- Возвращается EXIT_SUCCESS.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д