【发布时间】:2016-05-19 04:51:10
【问题描述】:
所以我进退两难了。我的代码应该使用 for 循环和 5 x 5 二维数组输出数字的对角线模式。我要用零填充数组,并让 for 循环用我想要的数字填充它。到目前为止,我已经成功地做到了这一点。但是,它们的顺序错误。我希望 80 在右上角,5 在左下角。
输出应该是这样的:
0 0 0 0 80
0 0 0 40 0
0 0 20 0 0
0 10 0 0 0
5 0 0 0 0
当前源代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int the_array[5][5] =
{
{ 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0 },
};
int dia = 5;
int x = 0;
int y = 0;
for (x = 4; x >= 0; --x)
{
for (y = 0; y < 5; ++y)
{
if (x == y)
{
the_array[x][y] = dia;
dia *= 2;
}
printf(" %d ", the_array[x][y]);
}
printf("\n");
}
return 0;
}
【问题讨论】:
-
将循环分成两遍。在第一遍中设置数组,然后在第二遍中打印它。这样您就可以更改迭代的顺序。第一个循环不需要嵌套,因为您只在
x == y时设置它。
标签: c arrays multidimensional-array