主题:怎么打印鞍点
Xewenh
[专家分:30] 发布于 2011-12-07 22:01:00
#include"stdio.h"
main()
{
int i,j,k,a[3][4],max,maxj,flag;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{ max=a[i][0];
maxj=0;
for(j=0;j<4;j++)
if(a[i][j]>max)
{max=a[i][j];maxj=j;
flag=1;}
for(k=0;k,3;k++)
if(max>a[k][maxj])
{flag=0;break;}
if(flag)
{
printf("%d",max);
break;}
}
if(!flag) printf("NO");
}
这样写错哪里 能不能帮我该下 顺便把正确的发到我邮箱596821335@qq.com
回复列表 (共4个回复)
沙发
aqua678 [专家分:90] 发布于 2011-12-08 09:42:00
#include<stdio.h>
void main()
{
int i,j,k,max,min,row,column,panduan;
int a[3][3]={{1,3,4},
{2,8,5},
{7,9,6}};
for(i=0;i<3;i++)
{
max=a[i][0];
for(j=0;j<3;j++)
{
if(a[i][j]>max)
{ max=a[i][j];
row=i;
column=j;}
}
min=a[row][column];
for(k=0;k<3;k++)
{
if(a[k][column]<min)
min=a[k][column];
}
if(max==min)
panduan=1;
else
panduan=0;
if(panduan==0)
printf("there is not Andian.\n");
if(panduan==1)
printf("Andian is a[%d][%d]=%d\n",row,column,a[row][column]);
}
}
板凳
Xewenh [专家分:30] 发布于 2011-12-08 18:30:00
我运行了你那个程序 结果是 andian shi 4
there is no andian
there is no andian
3 楼
bdgjmt [专家分:0] 发布于 2011-12-18 20:16:00
#include <stdio.h>
#define N 4
#define M 5 /* 数组为4行5列 */
int main()
{
int i,j,k,a[N][M],max,maxj,flag;
printf("please input matrix:\n");
for (i=0;i<N;i++) /* 输入数组 */
for (j=0;j<M;j++)
scanf("%d",&a[i][j]);
for (i=0;i<N;i++)
{max=a[i][0]; /* 开始时假设a[i][0]最大 */
maxj=0; /* 将列号0赋给maxj保存 */
for (j=0;j<M;j++) /* 找出第i行中的最大数 */
if (a[i][j]>max)
{max=a[i][j]; /* 将本行的最大数存放在max中 */
maxj=j; /* 将最大数所在的列号存放在maxj中 */
}
flag=1; /* 先假设是鞍点,以flag为1代表 */
for (k=0;k<N;k++)
if (max>a[k][maxj]) /* 将最大数和其同列元素相比 */
{flag=0; /* 如果max不是同列最小,表示不是鞍点令flag1为0 */
continue;}
if(flag) /* 如果flag1为1表示是鞍点 */
{printf("a[%d][%d]=%d\n",i,maxj,max); /* 输出鞍点的值和所在行列号 */
break;
}
}
if(!flag) /* 如果flag为0表示鞍点不存在 */
printf("It is not exist!\n");
return 0;
}
4 楼
bdgjmt [专家分:0] 发布于 2011-12-18 20:19:00
这个是第4版的标准答案
我来回复