Как найти max элемент, расположенный в заштрихованной части матрицы - C (СИ)
Формулировка задачи:
Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы. Для определения наибольшего элемента использовать подпрограмму. в СИ
Решение задачи: «Как найти max элемент, расположенный в заштрихованной части матрицы»
textual
Листинг программы
#include <stdio.h>
#include "stdafx.h"
#include <iostream>
double ** Input(int rows, int cols)
{
double **p;
p = (double**)malloc(rows * sizeof(double*));
for (int i = 0; i < rows; i++) {
p[i] = (double*)malloc(cols * sizeof(double));
for (int j = 0; j < cols; j++)
{
printf("A[%d][%d]= ", i, j);
scanf("%lf", &p[i][j]);
}
}
return p;
}
double ** max(double **mas, int m) // отбор максимального значения
{
int q;
int max = 0;
int maxl = 0;
q = ((m - 1) / 2);
for (int i = 0; q < i < m; i++)
{
for (int j = i; j < m; j++)
{
if (mas[i][j] > max) { max = mas[i][j]; }
}
}
/*
for (int j = 0; ((m - 1) / 2) < j < m; j++)
{
for (int i = (m - 1 - j); i >= 0; i--)
{
if (mas[i][j] > maxl) { maxl = mas[i][j]; }
}
}
*/
printf("min = %d", max);
return mas;
}
int main()
{
int m;
double **f;
double **mas;
system("chcp 1251");
system("cls");
printf("Введите размерность квадратной матрицы: ");
scanf("%d", &m);
printf("Ввод матрицы А\n");
mas = Input(m, m);
printf("максимальное значение \n");
f = max(mas, m);
getchar(); getchar();
}
Объяснение кода листинга программы
- Input: функция для ввода матрицы.
- max: функция для поиска максимального значения в заштрихованной части матрицы.
- m: размерность квадратной матрицы.
- f: временный массив для хранения максимального значения.
- mas: матрица для обработки.
- q: переменная для хранения количества элементов в матрице.
- max: текущее максимальное значение.
- maxl: текущее максимальное значение в левой половине матрицы.
- i, j: индексы для обхода матрицы.
- printf: функция вывода информации на экран.
- scanf: функция для ввода данных с клавиатуры.
- stdafx.h: заголовочный файл, необходимый для работы с Windows API.
- double: тип данных для хранения чисел с плавающей точкой.
- malloc: функция для выделения памяти.
- free: функция для освобождения памяти.
- system: функция для выполнения системных команд.
- chcp 1251: команда для установки кодировки консоли.
- cls: команда для очистки консоли.
- getchar: функция для получения одного символа из стандартного ввода.
- printf: функция для вывода информации на экран.