Использование имени процедуры в качестве параметра другой процедуры - C (СИ) (71371)
Формулировка задачи:
Составить программу по заданному условию. Первая часть условия является заданием на разработку процедур для любой функции f1, f2. Условие второй части задания предполагает обязательное использование разработанной процедуры. В качестве исходного данного в большинстве заданий используется квадратная матрица А.
Для элементов двух массивов P и B разной длины составить процедуру, определяющую максимальное значение f(H[i]), где в качестве H[i] выступают элементы из P и B.
В матрице А найти номера строки и столбца, на пересечении которых находится минимальный элемент. Затем среди элементов найденных строки и столбца определить максимальный элемент.
Решение задачи: «Использование имени процедуры в качестве параметра другой процедуры»
textual
Листинг программы
#include <stdio.h> //Для элементов двух массивов P и B разной длины составить процедуру, //определяющую максимальное значение f(H[i]), где в качестве H[i] выступают //элементы из P и B. //В матрице А найти номера строки и столбца, на пересечении которых находится // минимальный элемент. Затем среди элементов найденных строки и столбца определить // максимальный элемент. int f1(int P[], int N) { int i, max; max = P[0]; for(i = 0; i < N; i++) if(P[i] > max) max = P[i]; return max; } void f2(int A[][5], int N) { int i, j, max, min, x, y, k, z, flag = 0; min = A[0][0]; for(i = 0; i < N; i++){ for(j = 0; j < N; j++){ if(A[i][j] < min){ min = A[i][j]; x = i; y = j; } } } printf("The minimum element of A matrix is A[%d][%d] = %d\n", x, y, min); max = min; for(j = 0; j < N; j++){ if(A[x][j] > max){ max = A[x][j]; k = j; } } for(i = 0; i < N; i++){ if(A[i][y] > max){ max = A[i][y]; z = i; flag = 1; } } if(flag == 1) printf("Maximum row %d and column %d element is A[%d][%d] = %d\n", x, y, z, y, max); else printf("Maximum row %d and column %d element is A[%d][%d] = %d\n", x, y, x, k, max); } int main() { int P[5] = {-8,12,0,36,-42}; int B[10] = {56,345,765,-234,53,1267,8798,64,756,-4567}; int A[5][5] = {{456,23,34,67,6},{75,244,123,98,0},{3453,765,4,-234,5}, {6756,-9878,0,324,75},{2345,-4567,23,876,-13}}; printf("Maximum value P array is %d\n",f1(P, 5)); printf("Maximum value B array is %d\n", f1(B, 10)); f2(A, 5); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д