/*
Title : patterns in C
Author : Harshit, Edited by : Ashish
IDE : Code::Blocks v16.01
Date : 26 Feb 2017
*/
#include <stdio.h>
#include <conio.h>
void main(void)
{
int i,j,k,l,input; //k & l if required further
printf("enter no. of rows\n",input);// Enter no. of rows required
scanf("%d",&input);
pattern will be written here
getch();
}
//. . . these dots indicate length of the input so don't be confused the following patterns are for input = 4
/* pattern no: 1
1
1 2
1 2 3
1 2 3 4...
*/
for(i = 1;i<=input;i++)
{
for(j=1;j<=i;j++)
{
printf("%d",j);
}
printf("\n");
}
/* pattern no: 2
1
2 1
3 2 1
4 3 2 1
...
*/
for(i = 1;i<=input;i++)
{
for(j=i;j>0;j--) // j should be greater than 0 or >=1
{
printf("%d",j);
}
printf("\n");
}
/* pattern no: 3
1
2 2
3 3 3
4 4 4 4
...
*/
for(i = 1;i<=input;i++)
{
for(j=1;j<=i;j++)
{
printf("%d",i);
}
printf("\n");
}
/* pattern no: 4
1
2 3
4 5 6
7 8 9 10
...
*/
k=0; // variable initiation
for(i = 1;i<=input;i++)
{
for(j=1;j<=i;j++)
{
k++;
printf("%d",k);
}
printf("\n");
}
/* pattern no: 5
*
* *
* * *
* * * * . . .
*/
for(i = 1;i<=input;i++)
{
for(j=1;j<=i;j++)
{
printf("* ");
}
printf("\n");
}
/* pattern no: 6
* * * *...
* * *
* *
*
*/
for(i = 1;i<=input;i++)
{
for(j=input;j>=i;j--)
{
printf("* ");
}
printf("\n");
}
/* pattern no: 7
...4 3 2 1
...4 3 2
...4 3
...4
...
*/
for(i = 1;i<=input;i++)
{
for(j=input;j>=i;j--)
{
printf("%d",j);
}
printf("\n");
}
/* pattern no: 8
1
21
321
4321
...
*/
for(i = 1;i<=input;i++)
{
for(j=input;j>i;j--)
{
printf(" ");
}
for (k=i;k>0;k--)
{
printf("%d",k);
}
printf("\n");
}
/* pattern no: 9
1
12
123
1234
...
*/
for(i = 1;i<=input;i++)
{
for(j=input;j>i;j--)
{
printf(" ");
}
for (k=1;k<=i;k++)
{
printf("%d",k);
}
printf("\n");
}
/* pattern no: 10 tree of *
*
* *
* * *
* * * *
...
*/
for(i = 1;i<=input;i++)
{
for(j=input;j>i;j--)
{
printf(" ");
}
for (k=1;k<=i;k++)
{
printf("*");
}
for (l=2;l<=i;l++)// "l" must start from 2 bcoz for 1st row 1 "*" has already printed in "k"
{
printf("*");
}
printf("\n");
}
/* pattern no: 11 Diamond (no. of rows be 2 x input-1)
*
* *
* * *
* * * *
* * *
* *
*
*/
for(i = 1;i<=input;i++)
{
for(j=input;j>i;j--)
{
printf(" ");
}
for (k=1;k<=i;k++)
{
printf("*");
}
for (l=2;l<=i;l++)
{
printf("*");
}
printf("\n");
}
for(i = input-1;i>=1;i--)//here input must be one less bcoz one time input has been printed now we have to invert it
{
for(j=input;j>i;j--)
{
printf(" ");
}
for (k=1;k<=i;k++)
{
printf("*");
}
for (l=2;l<=i;l++)
{
printf("*");
}
printf("\n");
}
/* pattern no: 12
A
A B
A B C
A B C D . . . not valid after 26 rows
*/
char ch='A';
for(i = 1;i<=input;i++)
{
for(j=1;j<=i;j++)
{
printf("%c",ch);
ch++;
}
printf("\n");
ch='A';
}
/* pattern no: 13
A
B C
D E F
G H I J
. . . not valid after 7 rows
*/
char ch='A';
for(i = 1;i<=input;i++)
{
for(j=1;j<=i;j++)
{
printf("%c",ch);
ch++;
}
printf("\n");
}
/* pattern no: 14
A
B A
C B A
D C B A
. . . not valid after 26 rows
*/
char ch='A';
for(i = 1;i<=input;i++)
{
for(j=input;j>i;j--)
{
printf(" ");
}
for (k=1;k<=i;k++)
{
printf("%c",ch);
ch++;
}
printf("\n");
ch='A';
}
/* pattern no: 15 (input = 4, max 7)
ABCDE
FGHI
JKL
MN
*/
char ch='A';
for(i = 1;i<=input;i++)
{
for(j=input;j>=i;j--)
{
printf("%c",ch);
ch++;
}
printf("\n");
}
/* pattern no: 16 (input = 4, max 26)
...
ABCD
ABC
AB
A
*/
char ch='A';
for(i = 1;i<=input;i++) // or for(i = input;i>0;i--)
{
for(j=input;j>=i;j--) // or for(j=1;j<=i;j++)
{
printf("%c",ch);
ch++;
}
printf("\n");
ch='A';
}
/* pattern no: 17 (input = 4, max 26)
...
Z Y X W
Z Y X
Z Y
Z
*/
//if you want different initialization then your input should be static not variable E.g: if ch='E'then input=5, if ch='F' then input=6 and so on.
char ch='Z';
for(i = 1;i<=input;i++)
{
for(j=input;j>=i;j--)
{
printf("%c",ch);
ch--;
}
printf("\n");
ch='Z';
}