Написать функцию, вычисляющую среднее арифметическое между диагоналями матрицы - C (СИ)
Формулировка задачи:
Заполнить двухмерный массив случайными целыми числами (10Х10) от 1 до 255 и вывести его на экран и написать функцию, вычисляющую среднее между диагоналями.
Помогите пожалуйста составить программу на С. За ранее благодарен
Решение задачи: «Написать функцию, вычисляющую среднее арифметическое между диагоналями матрицы»
textual
Листинг программы
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void FillArray(void);
void DisplayArray(void);
int MaxDiagKrest(void);
int m=5,n=7;
int mas[100][100];
main()
{
FillArray();
DisplayArray();
printf("\n");
printf("%d\n",MaxDiagKrest());
getchar();
return 0;
}
/* zapolnim massiv randomno */
void FillArray(void)
{
int i,j;
srand((unsigned)time(NULL)); /* ustanovka generatora sluch chisel */
for(j=0; j<m; ++j)
for(i=0; i<n; ++i)
mas[j][i] = 1 + rand() % 255;
}
/* vivo massiva na displej */
void DisplayArray(void)
{
int i,t;
puts(""); /* nachalo novoj stroki */
for(t=0; t<m; ++t)
{
for(i=0; i<n; ++i)
printf("%4d ", mas[t][i]);
printf("\n");
}
}
/*poisk max elementa na diagonalnom kreste*/
int MaxDiagKrest(void)
{
int j,max=0;
for(j=0; j<m; ++j)
{
if (mas[j][j] > max)
max = mas[j][j];
if (mas[j][m-j-1] > max)
max = mas[j][m-j-1];
// printf("%d %d\n",mas[j][j],mas[j][m-j-1]); // diagonalnom krest
}
return max;
}
Объяснение кода листинга программы
- Программа на языке C
- Задача программы - вычисление среднего арифметического между диагоналями матрицы
- В программе используется функция
FillArray, которая заполняет массив случайными числами - Функция
DisplayArrayвыводит массив на экран - Функция
MaxDiagKrestищет максимальное значение на главной диагонали матрицы - В функции
mainвызываются функцииFillArray,DisplayArrayиMaxDiagKrest - Значения переменных
mиnравны 5 и 7 соответственно - Массив
masимеет размер 100x100 - В функции
mainпеременнаяgetchar()используется для ожидания нажатия клавиши после вывода результата - В функции
FillArrayиспользуется генератор случайных чисел, установленный с помощьюsrand((unsigned)time(NULL)) - В функции
DisplayArrayмассив выводится на экран в виде двумерного массива - В функции
MaxDiagKrestиспользуется две вложенные циклы для поиска максимального значения на диагонали - Значение переменной
maxинициализируется значением 0 - Внутренний цикл функции
MaxDiagKrestпроверяет значения элементов на главной диагонали - Если найденное значение больше текущего значения
max, то значениеmaxобновляется - Внешний цикл функции
MaxDiagKrestвыполняет поиск максимального значения на обеих диагоналях матрицы - Функция
MaxDiagKrestвозвращает найденное максимальное значение - Значение переменной
mможет быть изменено на любое другое положительное целое число без изменения смысла программы - Значение переменной
nможет быть изменено на любое другое положительное целое число без изменения смысла программы - Массив
masможет быть заменен на любой другой массив размеромmxnбез изменения смысла программы