-1

我学习 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);

}

答案有一些研究工作,很清楚;可能对学习同一学科的人有用,因此无缘无故地被否决了。

4

5 回答 5

1

问题中有一条线索:“编写循环嵌套”。数一数,然后倒数。

于 2012-05-05T19:04:50.860 回答
1

由于这是一个练习,我只会提示一个解决方案,因为要学习你真的应该自己做。

  1. for循环可以反向进行。
  2. 您可以有多个嵌套循环。
于 2012-05-05T19:05:07.303 回答
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;
}
于 2012-05-05T19:10:21.073 回答
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");
}

我希望这会有所帮助

这是默认答案

于 2012-11-03T14:32:14.807 回答
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;

}

感谢你 !

于 2013-10-25T04:53:30.493 回答