用c语言输入一个4行4列矩阵,并求出每行每列最大最小值,我要复制下来就能运行的,最好用调用函数

如题所述

#include <stdio.h>
#include <string.h>
#define W 4 //4列
#define H 4//4行
int main()
{


int i,j;
int arr[W][H]=
{
{1,3,5,7},
{10,23,45,12},
{100,102,500,324},
{88,75,23,47}
};//这个可以自己输入


int arr2[W+H];//0-3表示 每行最大 4-7表示每行最大 当然也可以定义成两个不同的数组
  
memset(arr2,0,sizeof(int)*(W+H));//首先都设置为0,当然任务最小的是0了


for(i=0;i<H;i++)
{
   
  for(j=0;j<W;j++)
  {
  
  if(arr[i][j]>arr2[i])
  arr2[i]=arr[i][j];//如果当前值比该行的最大值还大  就把该行的最大值设置为 当前值
  
  if(arr[i][j]>arr2[j+4])//如果当前值比该列的最大值还大,就把该列的最大值设为当前值
  arr2[j+4]=arr[i][j];
  }


}


//输出每行的最大值
for(i=0;i<H;i++)
       printf("第%d行最大值是:%d\n",i+1,arr2[i]);

printf("\n\n");

//输出每列最大值
for(i=0;i<W;i++)
       printf("第%d行最大值是:%d\n",i+1,arr2[i+4]);


return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-10
#include<stdio.h>
int max(int x,int y)
{
if(x>=y)
return x;
return y;
}
void main()
{
int a[4][4];
int i,j,m1,m2;
for(i=0;i<4;i++)
{
printf("请输入第%d行的四个数,中间用空格隔开:\n",i+1);
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<4;i++)
{
m1=0;
m2=0;
for(j=0;j<4;j++)
{
m1=max(m1,a[i][j]);
m2=max(m2,a[j][i]);
}
printf("第%d行最大值为:%d\n",i+1,m1);
printf("第%d列最大值为:%d\n",i+1,m2);
}
}
第2个回答  2013-12-10
#include <iostream>
using namespace std;
int arry[4][4];
void enter()
{
     for(int i=0;i<4;i++)
         for(int j=0;j<4;j++)
         {
                 scanf("%d",&arry[i][j]);
         }
}
void show()
{
     
     for(int i=0;i<4;i++){
         for(int j=0;j<4;j++)
         {
                 printf("%d",arry[i][j]);
                 printf(" ");
         }   
         printf("\n");}
}
int findrow(int k)
{
     int temp=arry[k][0];
     for(int i=1;i<4;i++)
     {
             if(arry[k][i]>temp)
             temp=arry[k][i];
     }
     return temp;
}
int findcolumn(int k)
{
    int temp=arry[0][k];
     for(int i=1;i<4;i++)
     {
             if(arry[i][k]>temp)
             temp=arry[i][k];
     }
     return temp;
}
int main()
{
    printf("请输入4维数组:\n");
    enter();
    printf("您输入4维数组是:\n");
    show(); 
    for(int i=0;i<4;i++)
    {
        printf("第");printf("%d",i+1);printf("行的最大数是:%d\n",findrow(i));
    }
    for(int j=0;j<4;j++)
    {
        printf("第");printf("%d",j+1);printf("列的最大数是:%d\n",findcolumn(j));
    }
    
    system("pause");     
    
}

相似回答