C语言 IF ELSE 语句出错

算马鞍点,如下写的。到了else这里提示出错。。。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int col,i,j,row,m,n;
int a[m][n];
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
row = col = 0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(a[i]>a[row]||a[j]<a[col]){
row=i;
col=j;
printf("%d",a[row][col]); }
else
printf("NO");
system("pause");
return 0;
}
修改成现在这样的,可以运行,但运行后出错。。。

if (a)等价于if(1),即判断表达式为真,执行printf ("a");

if (!a)等价于if(!1),判断表达式为假,不执行printf ("b");

if (a=1)先执行赋值运算,然后做判断,左后还是等价于if(1),执行 printf ("d");

if (a==1)先做比较,判断a是否等于1,如果等于1,则执行printf ("e");
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-30
int a[m][n];
这样的定义不能分配空间,scanf("%d",&a[i][j])时会出错。
解决办法有两个,要么预先分配一个足够大的空间,要么用指针。追问

那具体怎么解决呢

第2个回答  2011-06-30
看错了 不好意思
相似回答