为什么在for中定义x不能正确进行,而非得在循环外
#include <stdio.h>#include <stdlib.h>
int main()
{
int num[20][20];
int m,n;
scanf("%d %d",&m,&n);
int i,j;
for(i = 0;i < m;i++){
for(j = 0;j < n;j++){
scanf("%d",&num[i][j]);
}
}
int flag = 0;
int x =0;
for(i = 0;i < m;i++){
//int x =0; //为什么在for中定义x不能正确进行,而非得在循环外
for(j = 0;j < n;j++){
x = num[i][j];
if((i < m-1) && ( i > 0) && (j > 0) && (j < n-1)){
if((x > num[i-1][j]) && (x > num[i+1][j]) && (x > num[i][j-1]) && (x > num[i][j+1])){
printf("%d %d %d\n",x,i+1,j+1);
flag = 1;
}
}
}
}
if(flag == 0)
printf("None %d %d",m,n);
// printf("Hello world!\n");
return 0;
}
//为什么在for中定义了x后不能正确进行
/**输入在第1行中给出矩阵A的行数M和列数N(3<=M,N<=20);最后M行,每行给出A在该行的N个元素的值。数字间以空格分隔。
输出格式:
每行按照“元素值 行号 列号”的格式输出一个局部极大值,其中行、列编号从1开始。要求按照行号递增输出;
若同行有超过1个局部极大值,则该行按列号递增输出。
若没有局部极大值,则输出“None 总行数 总列数”。**/