二维数组的嵌套
#include <stdio.h>int main()
{
int a = {
{1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20}};
int i, j;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 5; j++)
{
printf("%2d ", a);\\这里的2d是什么作用呀
if (i + j == 3) \\这里的i+j==3是啥操作 表示看不懂有没有大佬解释一下呀 我比较蠢 得简单易懂才能理解
{
printf("\n");
}
}
}
printf("\n");
return 0;
}
本帖最后由 jackz007 于 2022-10-25 20:03 编辑
for (i = 0; i < 4; i++)
{
for (j = 0; j < 5; j++)
{
printf("%2d ", a) ; // %2d 的意思是以十进制整数按 2 个字符宽度打印输出变量 a 的值
if (i + j == 3) // 把二维数组切分成一维数组打印,每打印 4 个元素就打印一个回车换行符。
{
printf("\n");
} 2d指的是这位数字占两个位置
i + j == 3指的是每4个元素就换行一次。 本帖最后由 桃花飞舞 于 2022-10-25 22:54 编辑
2d是位宽就是说占用了两位数字的宽度,i+j == 3 是指二维数组元素下标之和等于3的时候就执行printf("\n"); 这可以自己计算下,什么情况执行换行,不赞同楼上的每4个元素就换行 同意4楼的说法,这里只适用于这段代码,我感觉通用一些的写法应该是
if( (i != 0 && j != 0)&&( (i+j)%3 == 0) ) 谢谢各位 我算着算着懂了 有多了一个新思路
页:
[1]