如何产生以下输出?

时间:2014-06-29 17:15:18

标签: c

由于我是编程世界的新手,我在为这种模式编写程序时面临的问题很少。我尝试了很多次,但结果却不是我想要的?  模式是:

 1 
 23 
 456 
 78910 

我写的是: -

#include<stdio.h> 
#include<conio.h> 
void main() 
{ 
    int num = 1 , j = 1 , x = 1 , i = 1 ; 
    while( j <= 4 ) { 
        while( i <= num ) { 
            printf( "%d", x ) ; 
            x++ ; 
            i++ ; 
        } 
        num++ ; 
        i = ( i + 1 ) - num ; 
        j++ ; 
    } 
    getch() ; 
} 

4 个答案:

答案 0 :(得分:5)

#include <stdio.h>

int main()
{
    printf("1\n23\n456\n78910\n");
    return 0;
}

产生你想要的输出

答案 1 :(得分:5)

您需要在内循环后打印换行符:

#include<stdio.h> 
#include<conio.h>
int main() 
{ 
    int num = 1 , j = 1 , x = 1 , i = 1 ; 
    while( j <= 4 ) { 
        while( i <= num ) { 
            printf( "%d", x ) ; 
            x++ ; 
            i++ ; 
        } 
        printf("\n");
        num++ ; 
        i = ( i + 1 ) - num ; 
        j++ ; 
    } 
    getch();
    return(0);
} 

答案 2 :(得分:0)

还有另一个例子:

int main()
{
    int i, j, num = 1, line = 4;
    for(i = 1; i <=  line ; i++)
    {
        for(j = 0; j < i; j++)
        {
            printf("%d", num);
            num++;
        }
        printf("\n");
    }
    return 0;
}

答案 3 :(得分:0)

单循环:

# include<stdio.h>
# define LIMIT 100

int main(){
int i, prev=0, next=0, diff=1;
for(i=1;i<LIMIT;i++){
    printf("%d", i);next++;
    if(diff == next-prev){
        printf("\n");
        diff++;prev = next = 0;
    }
}
}