这2个for循环程序为什么输出结果不一样,请老师指点

来源:百度知道 编辑:UC知道 时间:2024/06/27 06:06:12
编了个输出数组的小程序,开始输出1 2 3 4 5 6 7 8 9;加了对{}后输出 1 2 3 请问这是为什么啊
4 5 6
7 8 9

#include"stdio.h"
#define m 3
#define n 3
void main()
{
int a[m][n],i,j;
for(i=0;i<=m-1;i++)
for(j=0;j<=n-1;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=m-1;i++)
{
for(j=0;j<=n-1;j++)
printf("%6d",a[i][j]);
printf("\n");
}
}

#include"stdio.h"
#define m 3
#define n 3
void main()
{
int a[m][n],i,j;
for(i=0;i<=m-1;i++)
for(j=0;j<=n-1;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=m-1;i++)
for(j=0;j<=n-1;j++)
printf("%6d",a[i][j]);
printf("\n");

}

注:如果循环体内有多条语句,则要用{}括起来.如果语句没有在括号内,则该语句不属于循环体.
#include"stdio.h"
#define m 3
#define n 3
void main()
{
int a[m][n],i,j;
for(i=0;i<=m-1;i++)
for(j=0;j<=n-1;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=m-1;i++)
{
for(j=0;j<=n-1;j++)
printf("%6d",a[i][j]);
printf("\n"); /*这里跳出里面的for后先输出一个换行再执行上一个for*/
}
}

#include"stdio.h"
#define m 3
#define n 3
void main()
{
int a[m][n],i,j;
for(i=0;i<=m-1;i++)
for(j=0;j<=n-1;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=m-1;i++)
for(j=0;j<=n-1;j++)
printf("%6d",a[i][j]);
printf("\n"); /*这里是执行完两个for个再执行的*/

}

#include"stdio.h"
#define m 3
#define n 3
void main()
{
int a[m][n],i,j;
for(i=0;i<=m-1;i++)
for(j=0;j&l