我已经学习了一段时间的C编程,我偶然发现了这个我似乎无法解决的练习:
编写导致显示以下输出的循环嵌套:
0
01
012
0123
01234
012345
01234
0123
012
01
0
到现在为止,我已经设法进入第六排,但我无法完成练习。 这是我编写的代码,用于获得此问题的一半解决方案:
#include <stdio.h>
int
main(void)
{
int i, j;
for(i = 1; i <= 6; ++i) {
for(j = 0; j < i; ++j)
printf("%d", j);
printf("\n");
}
return(0);
}
答案有一些研究努力,很清楚;对于研究同一主题的人来说可能是有用的,所以它无缘无故被低估了。
答案 0 :(得分:1)
问题中有一条线索:“写出嵌套循环”。数数,然后倒计时。
答案 1 :(得分:1)
由于这是一个练习,我只会暗示一个解决方案,以便了解你真的应该自己做。
for
循环可以反过来。答案 2 :(得分:1)
您实际上可以使用单个嵌套循环执行此操作:
#include <stdio.h>
int getLength(int i) {
/* Since this is homework, I'll leave this for you to complete. */
if (i < ?) return ?;
else return ?;
}
int main(void) {
for(int i = 0; i < 11; ++i) {
int length = getLength(i);
for(int j = 0; j < length; ++j) {
printf("%d", j);
}
printf("\n");
}
return 0;
}
答案 3 :(得分:0)
for(int i=0;i<=10;i++)
{
if(i<=5)
{
for(int k=0;k<=i;k++)
printf("%d",k);
}
else if(i>5)
{
for(int j=0;j<=(10-i);j++)
printf("%d",j);
}
printf("\n");
}
我希望这会有所帮助
这是默认答案
答案 4 :(得分:0)
我认为用户应该告诉打印哪个号码。所以我的代码有点复杂。
int main(void) {
int rows;
int counter;
int backward;
int forward;
printf("Till which number you want to print??");
scanf("%d",&rows);
for(counter=0;counter<=rows;counter++)
{for(forward=0;forward<=counter;forward++)
printf("%d",forward);
printf("\n");
}
for(counter=rows;counter>=0;counter--)
{for(backward=0;backward<=counter;backward++)
printf("%d",backward);
printf("\n");
}
getch();
return 0;
}
谢谢你!