简体   繁体   中英

Number pattern printing in c

I'm newbie to programming. So as an exercise, I'm trying to print a number pattern like below.

0
10
210
3210
43210

I tried the code below.

 #include<stdio.h>
 void main()
 {
    int i ,j,n=5;
    for(i=0;i<=n;i++)
    {
        for(j=0;j>=i;j--)
        {
           printf("%d",i);
        }
        printf("\n");
     }
}

The output am getting after running the code above is:-

10
10
10
10
10

Am just stuck. Not able to solve this question. Can anyone help me please?

There are two loops. The first loop control the line number with range as [0,N). The second loop control the character sequences per line. Each line print out [Line_Number + 1] digital numbers. The sequence has a pattern as [Line_Number - Column_Number].

The example code:

#include <stdio.h>
void main() {
  int i, j, n = 5;
  for (i = 0; i < n; i++) {
    for (j = 0; j < (i + 1); j++) {
      printf("%d", (i - j));
    }
    printf("\n");
  }
}

Build and run:

gcc test.c
./a.out

The output:

0
10
210
3210
43210

You have done a simple mistake for the inner loop-j . Make sure that your outer loop i-loop refers to the number of lines and your printing as printf("%d",i); defines how many lines you want.

#include<stdio.h> 
void main() 
{ 
    int i ,j,n=5; 
    for(i=0;i<n;i++) 
    {
        for(j=i;j>=0;j--) 
        {
            printf("%d",j);
        }
        printf("\n");
    }
}

Then the output will be:

0
10
210
3210
43210
 #include<stdio.h>
 void main()
 { 
 int i ,j,n=5,t[n];
   for(i=0;i<n;i++)
     {
        t[i]=i;
        for(j=i;j>=0;j--)
           {
              printf("%d",t[j]);                  
           } 
        printf("\n");
     }

try this...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM