C语言二维数组赋值
main(){int a [5][5],i,j,n=1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=n++;
printf("The result is :\n");
for(i=0;j<=i;j++)
printf(" "%4",a[i][j]) ;
printf("\n")
}
很多二维数组的题都有4个for循环语句,个都代表什么??请详细解答一下,万分感谢
main(){int a [5][5],i,j,n=1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=n++;
printf("The result is :\n");
for(i=0;j<=i;j++)
printf(" "%4",a[i][j]) ;
printf("\n")
}
很多二维数组的题都有4个for循环语句,个都代表什么??请详细解答一下,万分感谢
答案:一般来说,二维数组都是二个For,一个是行,一个是列,如果更多,那就是有不同的需求了,没法定下一定用几个For,一切根据实际需要。另外你的程序是有问题的
main()
{int a [5][5],i,j,n=1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=n++;
printf("The result is :\n");
for(i=0;j<=i;j++) //这句是有问题的,我感觉你是写串行了。我想原来应该是下面这样
for(i=0;i<5;i++)
for(j=0;j<=i;j++)//这里是输出下半三角用的
printf(" "%4",a[i][j]) ;
printf("\n")
}
改成下面程序;
main()
{int a [5][5],i,j,n=1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=n++;
printf("The result is :\n");
for(i=0;i<5;i++)
{for(j=0;j<=i;j++)
printf("%4",a[i][j]) ;
printf("\n");}
}
main()
{int a [5][5],i,j,n=1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=n++;
printf("The result is :\n");
for(i=0;j<=i;j++)
printf(" "%4",a[i][j]) ;
printf("\n")
}
你的第一个
for(i=0;i<5;i++)
这是 行循环这个数组有5行 依次向下循环
第二个
for(j=0;j<5;j++)
这是列循环 你的这个二维数组 每一行有5个元素 向后循环
第三个FOR
有点错误 应该跟上面一样
for(i=0;i<5;i++)
这是输出的行循环 上面是输入的行循环
程序中的第四个
for(j=0;j<5;j++)
则是输出的列循环
你的后面一个printf 语句也有点错 该是 pirntf("%d,",a[i][j];
二维数组赋值通常情况下用2个循环来做。
用了四个循环,一般前两个循环是用来输入数据,另外两个循环是用来输出数据。
前3个for循环,
for(i=0;i<5;i++) //这个控制行的循环,先从第1列开始
for(j=0;j<5;j++) //这个控制列的循环,先从第1列开始
一般的二维数组赋值,用这2个循环就行了. 外层循环控制行的赋值,内层循环控制列的赋值.
第三个,
for(i=0;j<=i;j++)
printf(" "%4",a[i][j]) ;
//这是循环是控制输出条件的,跟二维数组赋值无任何关系. 控制的条件是: 输出任何行数大于等于列数的数组的值,比如a[1][1],a[2][1]......