Write a C program to print the given number using loop. How to print the given triangular number pattern using for loop in C programming. Logic to print the given number pattern in C program.
Required knowledge
Logic to print the given number pattern 1
The above pattern consists of N rows (where N is the total rows to be printed). Now to iterate N times you can either go from 1-N or from N-1. Here in our case we will go from N-1 as the pattern printed is in decreasing order. Each row contains i columns (where i is the current row number). Note that the first row is row 5, second is 4 and so on last row is 1.
Step-by-step descriptive logic:
- To iterate through rows, run an outer loop from N to 1 in decreasing order.
- Inside the outer loop initialize another variable say k = i (where k is used to keep the value which is to be printed next).
- To print columns, run an outer loop from 1 to i. Inside this loop print the value of k after that increment the value of k to get next value.
Program to print the given number pattern 1
/**
* C program to print number pattern
*/
#include <stdio.h>
int main()
{
int i, j, k, N;
printf("Enter N: ");
scanf("%d", &N);
for(i=N; i>=1; i--)
{
k = i;
// Logic to print numbers
for(j=1; j<=i; j++, k++)
{
printf("%d", k);
}
printf("\n");
}
return 0;
}
Output
Enter N: 5 56789 4567 345 23 1
Logic to print the given number pattern 2
The logic to print the above pattern is almost similar to the pattern we just printed. In this pattern we only need to add logic of printing spaces just before number gets printed. There are N – i spaces per row (where i is the current row number). If you want to see or count spaces, you can hover on to the pattern.
Step-by-step descriptive logic:
- To print spaces, run an inner loop from i to N – 1. Inside this loop print single blank space.
Program to print the given number pattern 2
/**
* C program to print number pattern
*/
#include <stdio.h>
int main()
{
int i, j, k, N;
printf("Enter N: ");
scanf("%d", &N);
for(i=N; i>=1; i--)
{
k = i;
// Logic to print spaces
for(j=i; j<N; j++)
{
printf(" ");
}
// Logic to print numbers
for(j=1; j<=i; j++, k++)
{
printf("%d", k);
}
printf("\n");
}
return 0;
}
Happy coding 😉