Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы - C (СИ) (73510)
Формулировка задачи:
Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы (тут квадрат нарисован,а заштрихованная часть - треугольник сверху)
-использовать вложенные циклы
-не использовать строки
-матрицу выводить на экран в виде таблицы
Заранее благодарен )
Решение задачи: «Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
void print_array(int **a, int n)
{
int i, j;
for (i = 0; i < n; ++i)
{
for (j = 0; j < n; ++j)
printf("%5d", a[i][j]);
printf("\n");
}
}
int main(int argc, char *argv[])
{
int **a, n, i, j, maximum;
printf("Input N:"); scanf("%d", &n);
a = (int**)malloc(sizeof(int*)*n);
for (i = n-1; i >= 0; --i)
a[i] = (int*)malloc(sizeof(int)*n);
/* Г‡Г*ïîëГ*ГҐГ*ГЁГҐ Г¬Г*Г±Г±ГЁГўГ* */
for (i = 0; i < n; ++i)
for (j = 0; j < n; ++j)
{
printf("A[%d][%d]:", i, j);
scanf("%d", &a[i][j]);
}
printf("Array:\n");
print_array(a, n);
/* ГЊГЁГ*ГЁГ¬Г*ëüГ*ûå */
maximum = a[0][0];
for (i = 0; i < n; ++i)
for (j = i; j < n; ++j)
if (maximum < a[i][j]) maximum = a[i][j];
/* Âûâîä */
printf("Maximum: %d\n", maximum);
/* ÓäГ*ëåГ*ГЁГҐ Г¬Г*Г±Г±ГЁГўГ* */
for (i = n-1; i >= 0; --i)
free(a[i]);
free(a);
system("PAUSE");
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется функция print_array, которая выводит элементы матрицы на экран
- Определяется функция main, которая является точкой входа в программу
- Создается двумерный массив a динамически при помощи malloc
- Пользователю предлагается ввести значение n - размерность матрицы
- Пользователю предлагается ввести значения элементов матрицы
- Выводится на экран матрица a
- Находится максимальное значение в матрице
- Выводится на экран максимальное значение
- Освобождаются выделенные под матрицу памяти
- Программа завершается