首页 > 试题广场 >

编写一个程序,求一个3×4的整数数组中每行的最大值,每一列的

[问答题]
编写一个程序,求一个3×4的整数数组中每行的最大值,每一列的最小值。要求每一行的最大元素和每一列的最小元素用函数实现。
推荐
用一维数组b存放二维数组a对的所有航的最大元素,用一维数组c存放二维数组a的所有列的最小元素,设计两个函数fun1和fun2分别求出指定行或列的最值。程序如下:
#include <stdio.h>
int fun1(int a[3][4],int i)         /*求第i行的最大元素*/
{
    int j,max;
    max=a[i][0];
    for (j=1;j<4;j++ )
        if (a[i][j]>max)
            max=a[i][j];
    return(max);
}
int fun2(int a[3][4],int j)        /*求第j行的最小元素*/
{
    int i,min;
    min=a[0][j];
    for (i=1;i<3;i++ )
        if (a[i][j]<min)
            min=a[i][j];
    return(min);
}
void main()
{
    int i,j;
    int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
    int b[3],c[4];
    for (i=0;i<3;i++ )        /*求所有行的最大元素*/
        b[i]=fun1(a,i);
      for (j=0;j<4;j++ )        /*求所有列的最小元素*/
           c[j]=fun2(a,j);    
    for (i=0;i<3;i++ )        /*执行结果输出*/
        printf("第%d行最大元素:%d\n",i,b[i]);
    for (j=0;j<4;j++ )
        printf("第%d列最小元素:&d\n",j,c[j]);
}

发表于 2018-05-07 10:51:36 回复(0)
#include <stdio.h>
//int res_row[3];
void fun_row(int a[3][4]){
    int i,j;
    int max=a[0][0];
    for(i=0;i<3;i++){
        for(j=0;j<4;j++){
            if(max<a[i][j]);
                max=a[i][j];
        }
        printf("第%d行最大元素:%d\n",i+1,max);
    }
}

void fun_col(int a[3][4]){
    int i,j;
    int min=a[0][0];
    for(i=0;i<4;i++){
        for(j=0;j<3;j++){
            if(min>a[j][i]);
                min=a[j][i];
        }
        printf("第%d列最小元素:%d\n",i+1,min);
    }
}
int main(){
    int i,j;
    int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
    fun_row(a);
    fun_col(a);
        
    return 0;
}

第1行最大元素:4
第2行最大元素:8
第3行最大元素:12
第1列最小元素:9
第2列最小元素:10
第3列最小元素:11
第4列最小元素:12

发表于 2018-09-05 16:24:01 回复(0)