Считывание чисел из файла и вывод количества чисел, меньших среднего арифметического - C (СИ)

Узнай цену своей работы

Формулировка задачи:

нужно написать программу которая открывает файл в текстовом режиме считывает числа и вивлдить количество чисел меньших среднее арифметическое. я вроде код написал но выбивает ошибку if statement missing ) через не могу программу запустить вообще
#include <stdio.h>
#include <stdlib.h>
void function() {
  int i, sum = 0, mas[5], kil=0;
    float sera;
 
    for (i = 0; i <= 4; i++)    {
    scanf ("%d", &mas[i]);
    sum += mas[i];
    }
    sera=sum/5;
 
    for(i=0; i<4;i++) {
    if (mas[i] < sera)  kil++;
 
     }
     printf("%d", kil);
 
    return ;
    }
int main() {
  FILE *f;
  if ( f = fopen("LAB922.txt", "r")! = NULL)
 { function(); }

   else printf("Nevdalos vidkryty");
  fclose(f);
  
  return 0;
}

Решение задачи: «Считывание чисел из файла и вывод количества чисел, меньших среднего арифметического»

textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#define FIVE 5
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
void bigger_than_average(FILE* input);
int main(void)
{
    FILE *input = NULL;
 
    if (!(input = fopen("input.txt", "r")))
        {
             printf("Here is the error while opening input file!");
             exit(1);
        }
    bigger_than_average(input);
 
    return 0;
}
 
void bigger_than_average(FILE* input)
{
    char buffer[512];
    long int sum = 0, array1[FIVE];
    short counter = 0;
 
    while (!feof(input))
    {
        fscanf(input, "%s", buffer);
        sum += array1[counter++] = atol(buffer);
    }
 
    sum /= FIVE;
    
    
    for (int detector = 0; detector < counter; detector++)
    {
        if (array1[detector] < sum)
            printf("%ld\n", array1[detector]);
    }
    
    return;
}

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

  1. Включаем необходимые заголовочные файлы для работы с файлами и математическими операциями
  2. Определяем функцию bigger_than_average, которая будет сортировать числа по большему значению
  3. Открываем файл input.txt в режиме чтения
  4. Если файл не открылся, выводим сообщение об ошибке и завершаем программу
  5. Вызываем функцию bigger_than_average для сортировки чисел
  6. В функции bigger_than_average объявляем массив array1 на пять элементов и инициализируем его нулями
  7. Объявляем переменную sum для хранения суммы всех чисел
  8. Объявляем переменную counter для отслеживания количества прочитанных чисел
  9. Считываем числа из файла в массив array1 и суммируем их
  10. Суммируем все числа и делим на пять для получения среднего значения
  11. Используем цикл for для проверки каждого числа на меньшее значение, чем среднее арифметическое
  12. Если число меньше, выводим его на экран
  13. Завершаем функцию bigger_than_average
  14. Закрываем файл input.txt
  15. Возвращаем управление в основную программу
  16. Программа завершается

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

14   голосов , оценка 4.071 из 5
Похожие ответы