这个c程序怎么出错了?

来源:百度知道 编辑:UC知道 时间:2024/06/06 05:19:46
#include<stdio.h>
void main()
{
static int a[2][3]={{1,3,4},{7,9,6}};
int i,j,k;
for(k=1;k<=2;k++)
{printf("Please input num:");
scanf("%d %d",&i,&j);
if(i<2&&j<3)
printf("num=%d\n",a[i][j]);
else printf("Input is error,\n");
}
printf("programm is complete.\n");
}
我想将第8行改为
scanf("i=%d j=%d",&i,&j);
则程序运行结果变成
please input num:i=1 j=2
num=6
num=6(我原本希望能重复第一行再让我输入)
Programm is complete.
为什么第二次不能输入?

因该是你设成静态变量造成的,你把statur去掉试试。

难道改之前行?我看了您的程序,无论改前改后都是直上直下的,没有返回的语句啊?如果是这样,当您运算完了,当然就会输出:
{printf("Please input num:");
scanf("%d %d",&i,&j);
if(i<2&&j<3)
printf("num=%d\n",a[i][j]);
else printf("Input is error,\n");
}
这个IF循环之后的事情,也就是该执行这个{}下面的代码了。

输入完数据后程序运行输出结果后就结束了,当然不能在输入了。