在C中以奇数次显示数字

时间:2017-01-25 16:07:15

标签: c for-loop

输出以下列形式给出:

OUTPUT :
0
111
22222
3333333
... up to 9.

我给出的任务是使用嵌套的for循环为此输出编写代码。

我最接近弄清楚的是:

#include <stdio.h>
#include <conio.h>

int main()
{
    int x=0, y=0, z=0;

    for (x=1; x<=9; x=x+1)
    {
        printf("\n");
        for (y=0; y<=10; y=y+1)
        {
            for(z==y; y<x; y++)
            {
                printf("%d", x);    
            }
        }
    }
}

我还被指示&#34;不要使用数组或其他解决这个问题的方法。&#34;

我无法弄清楚我的错误。帮助将不胜感激。

此计划的输出位于:https://i.stack.imgur.com/IfNPe.png

2 个答案:

答案 0 :(得分:4)

迭代所有数字(x),同时将打印数量y)增加2,从1see online)开始:

for (int x = 0, y = 1; x <= 9; x++, y += 2)
{
    for (int z = 0; z < y; z++)
            printf("%d", x);        
    printf("\n");
}

我会说

for (int x = 0; x <= 9; x++) {
        for (int y = 0; y < x * 2 + 1; y++)
                printf("%d", x);
        printf("\n")
}

更优雅,但跟随它可能有点棘手。

答案 1 :(得分:1)

那就是:

int main()
{
    int x, y, z;

    printf("0");
    for (x=1, y=3; x<=9; x++, y+=2)
    {
        printf("\n");
        for (z=y; z; z--)
        {
            printf("%d", x);    
        }       
    }
}

输出:

0
111
22222
3333333
444444444
55555555555
6666666666666
777777777777777
88888888888888888
9999999999999999999