Считывание чисел из файла и вывод количества чисел, меньших среднего арифметического - 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;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с файлами и математическими операциями
- Определяем функцию
bigger_than_average, которая будет сортировать числа по большему значению - Открываем файл
input.txtв режиме чтения - Если файл не открылся, выводим сообщение об ошибке и завершаем программу
- Вызываем функцию
bigger_than_averageдля сортировки чисел - В функции
bigger_than_averageобъявляем массивarray1на пять элементов и инициализируем его нулями - Объявляем переменную
sumдля хранения суммы всех чисел - Объявляем переменную
counterдля отслеживания количества прочитанных чисел - Считываем числа из файла в массив
array1и суммируем их - Суммируем все числа и делим на пять для получения среднего значения
- Используем цикл
forдля проверки каждого числа на меньшее значение, чем среднее арифметическое - Если число меньше, выводим его на экран
- Завершаем функцию
bigger_than_average - Закрываем файл
input.txt - Возвращаем управление в основную программу
- Программа завершается