Считывание чисел из файла и вывод количества чисел, меньших среднего арифметического - 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
- Возвращаем управление в основную программу
- Программа завершается
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д