//Директивы препроцессора
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <locale.h>
#include <stdlib.h> /*Задача: Написать программу, содержащую пользовательскую функцию, решающую сформулированную
ниже задачу. Программа печатает массив в виде таблицы, ввод элементов массива производится в
функции main(). Размеры массива N и M, значения элементов массива вводятся с клавиатуры.
Обращение к элементам массива выполняется только через косвенную адресацию, выделение памяти
выполняется функцией new. Предусмотреть реакцию программы в случае, если исходные данные не
позволяют выполнить поставленную задачу.
Вариант 2:Задан двумерный массив К(N, M). На экран вывести наибольшее из всех значений
элементов массива.*/
void DisplayArray2D_AndMaxValue(int **K, int N, int M) {
//-----Объявление переменных
int max, r, i, j;
//-----Ввод элементов двумерного массива
printf("\nВвод массива\n");
for(i=0;i<N;i++) {
printf("\nВведите строку номер %d\n", i+1);
for(j=0; j<M; j++)
scanf("%d", *(K+i)+j);
}
//-----Вывод на экран введенной матрицы(массива)
printf("\nВывод матрицы:\n");
for( i=0; i<N; i++){
printf("\n\n");
for( j=0; j<M; j++) printf(" %4d ", *(*(K+i)+j));
}
//-----Получение и вывод на экран максималного значения
max=*(*(K+0)+0);
for(i=0;i<N;i++) {
for(j=0; j<M; j++) {
r=*(*(K+i)+j);
if (r>max) max=r;
}
}
printf("\n\nМаксимальное значение в двумерном массиве: %i", max);
}
void main (void){
setlocale(LC_CTYPE, "Russian");
//-----Объявление переменных
int N, M, i, j;
int **K;
//-----Ввод размерностей массива N и M
puts("Введите количество строк в массиве(N):");
scanf_s("%li", &N);
puts("Введите количество строк в массиве(M):");
scanf_s("%li", &M);
//-----Захват памяти под "основной масси"
if(!(K=new int*[N])){
printf("Недостаточно памяти!\n");
exit(0);
}
//-----Захват памяти под вложенные массивы
for(i=0;i<N;i++) {
if (!(*(K+i)=new int[M])){
printf("Недостаточно памяти!\n");
K=NULL;
exit(0);
}
}
DisplayArray2D_AndMaxValue(K, N, M);
//-----Освобождение памяти
for (i=0; i<N; i++) delete [](*(K+i));
delete []K;
_getch();
}
Разрабатывалось под VS2008!