我应该输出:
******
*****
****
***
**
*
我确实输出了,但是我的代码对于这种练习来说太复杂了:
for (int i = 6; i > 0; i--) {
if (i == 6) {
printf("******\n");
} else {
if (i == 5) {
printf("*****\n");
} else {
if (i == 4) {
printf("****\n");
} else {
if (i == 3) {
printf("***\n");
} else {
if (i == 2) {
printf("**\n");
} else {
if (i == 1) {
printf("*\n");
}
}
}
}
}
}
}
如您所见,有很多if-else情况可以查看i
包含哪个值,然后决定每行应输出多少个符号,但是该代码只是大量的代码块我认为这不是必需的。所以我来这里问,如何以相同的结果简化代码。
代码应该看起来更具可读性。知道如何更改我的代码吗?
答案 0 :(得分:5)
您正在寻找嵌套循环。那是一个循环中的一个循环。要获得所需的输出,请尝试以下操作:
int main()
{
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6 - i; j++) {
printf("*");
}
printf("\n");
}
}
在这里,i
循环负责行(您可以看到每次运行的printf("\n");
),而j
循环负责打印适当数量的{ {1}}。
答案 1 :(得分:3)
如果您使用另一个for
循环,它将更加简单:
for(int i = 6; i > 0;i--) {
for(int j = 0; j < i; j++) {
printf("*");
}
printf("\n");
}