c语言 鞍点 找错

来源:百度知道 编辑:UC知道 时间:2024/05/09 23:13:14
麻烦大虾们帮帮忙,为什么每次输入数字的时候都是输入11个?
#include<stdio.h>
void main()
{
int a[2][2];
int i,j,x,y,p,q,max,min,flag;
printf("请输入3*3矩阵中的9个元素\n");
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
scanf("%d ",&a[i][j]);
}
}
for(i=1;i<=3;i++)
{
max=a[i][0];
for(j=1;j<=3;j++)
{
if(max<a[i][j])
{
max=a[i][j];
x=i;
y=j;
}
}
}
for(i=1;i<=3;i++)
{
min=a[i][0];
for(j=1;j<=3;j++)
{
if(min>a[i][j])
{
min=a[i][j];
p=i;
q=j;
}
}
}
if((x==p)&&(y==q))
{
flag=1;
}
else{flag=0;}
if(flag==1)
{
printf("存在鞍点为:%d\n",a[i][j]);
}
if(flag==0)
{
printf("此矩阵不存在鞍点!

从语法上来看
你最开始得定义得二维数组不正确
因为你下面输出得是一个
三行三列得整型二维数组应该定义成int a[3][3];或者int a[][3];
你有可能错误得理解成数组是从a[0][0]开始到a[2][2]结束
而认为只用定义到a[2][2]就可以咯那样理解是错误得。
你可以去翻一下C语言输上数组那章得定义

你的问题没有看明白,
但是你存储的是3*3的矩阵,
为什么这么声明?
int a[2][2];

是不是应该为:int a[3][3];