永发信息网

二维数组鞍点问题---C语言

答案:1  悬赏:0  手机版
解决时间 2021-08-12 17:06
  • 提问者网友:鐵馬踏冰河
  • 2021-08-11 22:53

       我设计的程序是直接性输入一个二位数字,行与列最大值为20,但是程序在运行中往往是没有输出,希望各位高手指导,谢谢。

      输入样例

   3 3 4

   2 4 6

   9 9 7

#include<stdio.h>
int main()
{
   
    int a[20][20],i,j,x,z,n;
    FILE *e,*r;
    e=fopen("6.in","r");
    r=fopen("6.out","w");
    for(i=0;i<20;i++)
      for(j=0;j<20;j++)
       fscanf(e,"%d",&a[i][j]);
    for(i=0;i<20;i++)
      for(j=0;j<20;j++)
       {
       x=a[i][j];
       z=a[i][j];
       n=0;
       while(n<=20)
        {
         if(a[i][n]>=x)   x=a[i][n];
         if(a[n][j]<=z)   z=a[n][j];
         n++;
        }
       if(x==z)
       fprintf(r,"%d",a[i][j]);
       }
      fclose(e);
      fclose(r);
      return 0;
    }

最佳答案
  • 五星知识达人网友:雾月
  • 2021-08-11 23:21
#include
int main()
{

int a[20][20],i,j,x,z,n;
FILE *e,*r;
e=fopen("6.in","r");
r=fopen("6.out","w");
for(i=0;i<20;i++)
for(j=0;j<20;j++)
fscanf(e,"%d",&a[i][j]);
for(i=0;i<20;i++)
for(j=0;j<20;j++)
{
x=a[i][0]; //改初始值为行首元素
z=a[0][j]; //改初始值为列首元素
n=0;
while(n<20)
{
if(a[i][n]>=x) x=a[i][n];
if(a[n][j]<=z) z=a[n][j];
n++;
}
if(x==z)
fprintf(r,"%d",a[i][j]);
}
fclose(e);
fclose(r);
return 0;
}

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