Использование имени процедуры в качестве параметра другой процедуры - 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;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы