-1

私はしばらくの間Cプログラミングを勉強していて、解決できないように見えるこの演習に出くわしました。

  • 次の出力が表示されるループのネストを記述します。

    0
    01
    012
    0123
    01234
    012345
    01234
    0123
    012
    01
    0
    

今までなんとか6列目までたどり着きましたが、運動を終えることができません。これは、この問題の解決策の半分を取得するために私が書いたコードです。

#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

実際には、単一のネストされたループでこれを行うことができます。

#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 に答える
1

質問には「ループのを書く」という手がかりがあります。カウントアップしてからカウントダウンします。

于 2012-05-05T19:04:50.860 に答える
1

これは演習であるため、解決策を示唆するだけです。実際にこれを自分で行う必要があることを学ぶためです。

  1. forループは逆になる可能性があります。
  2. 複数のネストされたループを持つことができます。
于 2012-05-05T19:05:07.303 に答える
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 に答える