
各位师兄师姐,我最近对if语句进行研究,发现了一共有四种情况是我还想不通的。其中前3种可以显示我需要的内容,最后1种不行,我想请教一下,这3种有效的显示哪些最标准,哪些尽量避免使用。另外,针对上面图片的第四种情况,个人心想的逻辑应该是这样的:先竖打印123456789,然后竖打印-1-2-3-4-5-6-7-8-9,然后打印很长的一竖,到了这个时候,j是等于2的,所以接下来应该是打印(i - 2) * (j - 2)即(3-2)*(2-2)等于0,其中i会自增,而j一直是2,也就是说,j-2一直是0,所以应该会出现很长的一竖000000000才对,不知为何不是这样显示。
以上两个问题这个是我目前的疑问,望不吝指教!
#include <stdio.h>
int main()
{
int i, j;
for (i = 1; i <= 11; i++) {
if (i == 1) {
for (j = 1; j <= 11; j++) {
if (j == 1)
putchar(' ');
else if (j == 2)
putchar('|');
else if (j > 2)
printf("%3d", i * (j - 2));
}putchar('\n');
}
if (i == 2) {
for (j = 1; j <= 11; j++){
printf("---");
}putchar('\n');
}
if (i > 2) {
for (j = 1; j <= 11; j++) {
if (j == 1)
printf("%d", i - 2);
if (j == 2)
putchar('|');
else
printf("%3d", (i - 2) * (j - 2));
}putchar('\n');
}
}
return 0;
}