Как сделать всю обработку массива через функцию? - C (СИ)
Формулировка задачи:
Всем привет!
Есть задание:
В двумерном массиве найти среднее арифметическое первого столбца и количество элементов в каждом из следующих
столбцов, превышающих среднее арифметическое предыдущего столбца.
Как сделать всю работу с массивом в функции?(чтоб в main был только ввод и вывод).Прошу помочь
Есть программа
#include<stdio.h> #include <locale.h> #define N 5 int main() { setlocale(LC_ALL, "Ru"); int a[N][N]; double sum = 0; double element; int count = 0; printf_s("Начальный массив:\n"); for (int i = 0; i < N; ++i) { for (int j = 0; j < N; ++j) { a[i][j] = rand() % 9 + 1; printf_s("%d ", a[i][j]); } printf_s("\n"); } for (int j = 1; j < N; ++j) { for (int i = 0; i < N; ++i) sum += a[i][j - 1]; element = sum / N; for (int i = 0; i < N; ++i) if (a[i][j] > element) ++count; printf_s("среднее арифметическое элементов %d ", j," - го столбца : ", element); printf_s("\nколичство элементов %d ", j + 1, " - го столбца больших", element); printf_s(": %d", count, "\n\n"); printf_s("\n"); } system("PAUSE"); return 0; }
Решение задачи: «Как сделать всю обработку массива через функцию?»
textual
Листинг программы
#include<stdio.h> #include<stdlib.h> #include <locale.h> #define N 5 void printmas(int (*a)[N]) { printf("Начальный массив:\n"); for (int i = 0; i < N; ++i) { for (int j = 0; j < N; ++j) { a[i][j] = rand() % 9 + 1; printf("%d ", a[i][j]); } printf("\n"); } } void mas(int (*a)[N]) { double sum = 0,element; int count = 0; for (int j = 1; j < N; ++j) { for (int i = 0; i < N; ++i) sum += a[i][j - 1]; element = sum / N; for (int i = 0; i < N; ++i) if (a[i][j] > element) ++count; printf("среднее арифметическое элементов %d - го столбца %lf: ", j, element); printf("\nколичство элементов %d - го столбца больших %lf: ",j + 1, element); printf(": %d\n", count); printf("\n"); count=0; } } int main(void) { setlocale(LC_ALL, "Ru"); int a[N][N]; printmas(a); mas(a); system("PAUSE"); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы.
- Определяется размер массива N.
- Создается функция printmas, которая принимает в качестве аргумента указатель на массив.
- В функции printmas происходит инициализация массива случайными числами от 1 до 9.
- Выводится начальный массив.
- Создается функция mas, которая принимает в качестве аргумента указатель на массив.
- В функции mas происходит инициализация переменных sum и element.
- Происходит обход каждого столбца массива.
- Вычисляется среднее арифметическое элементов столбца.
- Происходит проверка каждого элемента столбца на условие больше значения element.
- Выводится количество элементов, удовлетворяющих условию.
- Выводится среднее арифметическое элементов столбца.
- Выводится сообщение о количестве элементов, удовлетворяющих условию.
- В функции main происходит инициализация массива a.
- Вызывается функция printmas для вывода начального массива.
- Вызывается функция mas для обработки массива.
- Вводится пауза перед завершением программы.
- Программа возвращает 0, что означает успешное завершение работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д