永发信息网

c语言中,由键盘输入一个3×4(3行4列)的矩阵,输出矩阵中的鞍点(即在矩阵中行中最大,列中最小的

答案:3  悬赏:60  手机版
解决时间 2021-03-17 06:30
  • 提问者网友:萌卜娃娃
  • 2021-03-16 18:07
c语言中,由键盘输入一个3×4(3行4列)的矩阵,输出矩阵中的鞍点(即在矩阵中行中最大,列中最小的
最佳答案
  • 五星知识达人网友:街头电车
  • 2021-03-16 18:42
这不怎么难啊?追答#include
#define N 3
#define M 4
void main()
{
int i,j,k,a[N][M];
int max,maxj,flag;
printf("Please input matrix:\n");
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
for(i=0;i{
max=a[i][0];
maxj=0;
for(j=0;jif(a[i][j]>max)
{max=a[i][j];
maxj=j;
}
flag=1;
for(k=0;kif(max>a[k][maxj])
{flag=0;
continue;
}
if(flag)
{printf("a[%d][%d]=%d\n",i,maxj,max);
break;}
}
if(!flag)
printf("NO!");
}追问后面的if(flag)是什么意思啊程序出错追答程序出错没有吧追问改掉一些明显点的,无论输入什么还是只是输出no追答为什么我在我得编译器上可以运行if(flag)=if(flag==1)追问还是不行啊,总是输出NO追答你输入十二个数啊你找一个符合条件的看看可不可以3 1 2 2
4 2 3 3
5 1 2 5这十二个数你看看能不能输出结果第一个数字3 就是行中最大列中最小的数追问你能解释一下各个循环的目的是什么吗?比如第一个循环是为了输入数组,那么第二第三第四呢追答能不能采纳一下第一二个for是输入数据第三四个for循环是判断行最大第五个是判断列最小
全部回答
  • 1楼网友:春色三分
  • 2021-03-16 19:53
这不怎么难啊?
  • 2楼网友:鸽屿
  • 2021-03-16 19:09

int main(){

int a[3][4];

int i,j,k,n,max1,max2;

printf("input: ");

for(i=0;i<3;i++){

for(j=0;j<4;j++){

  scanf("%d",&a[i][j]);

}

}   


for(i=0;i<3;i++){

max1=0;

max2=0;

k=0;

for(j=0;j<4;j++){

if(a[i][j]>max1){

  max1=a[i][j];

  k=j;

  } 

}

    printf("行最大值max1:%d ",max1);//1.求出行中最大值


    max2=max1;

 for(n=0;n<3;n++){

   if(a[n][k]

  max2=a[n][k];

}    

}

printf("列最小值max2:%d ",max2); //2.求出行最大值的那一列的最大值

   


    if(max1==max2){

printf("鞍:%d ",max1);

   }else{

   printf("NO ");

  }//3.判断是否是同一个值


}


}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯