Простая задача на с - 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;
}

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

  1. Включаются необходимые заголовочные файлы и .
  2. Определяется функция GetMaxLength, которая принимает в качестве аргумента файловый указатель и возвращает размер максимальной длины.
  3. Внутри функции объявляются переменные count и max, которые используются для хранения текущего количества и максимального количества нечетных чисел соответственно.
  4. Переменная digit используется для считывания каждого числа из файла.
  5. В цикле while с помощью функции fscanf считывается каждое число из файла.
  6. Если число четное, то увеличивается переменная count.
  7. Если число нечетное и предыдущее количество было больше нуля, то проверяется, является ли текущее количество больше максимального.
  8. Если текущее количество больше максимального, то обновляется значение переменной max.
  9. После окончания цикла, функция возвращает максимальное значение из переменной count и max.
  10. В функции main проверяется корректность использования программы.
  11. Открывается файл с помощью функции fopen.
  12. Если файл не может быть открыт, выводится сообщение об ошибке и возвращается EXIT_FAILURE.
  13. Выводится сообщение с максимальным значением длины.
  14. Файл закрывается с помощью функции fclose.
  15. Возвращается EXIT_SUCCESS.

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


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

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

11   голосов , оценка 4 из 5