In: Computer Science
Write a program called x.c that reads an integer n from standard input, and prints an nxn pattern of asterisks and dashes in the shape of an "X".
You can assume n is odd and >= 5. Solve this problem using only while loop.
Solution:
./x Enter size: 5 *---* -*-*- --*-- -*-*- *---* ./x Enter size: 9 *-------* -*-----*- --*---*-- ---*-*--- ----*---- ---*-*--- --*---*-- -*-----*- *-------* ./x Enter size: 15 *-------------* -*-----------*- --*---------*-- ---*-------*--- ----*-----*---- -----*---*----- ------*-*------ -------*------- ------*-*------ -----*---*----- ----*-----*---- ---*-------*--- --*---------*-- -*-----------*- *-------------*
Code For Above Problem:
#include <stdio.h>
int main()
{
int size;
//asking user to enter size
printf("Enter size: ");
scanf("%d",&size);
//for 'size' number of rows
int i=1;
while(i<=size)
{
int j=1;
//for 'size' number of columns
while(j<=size)
{
//if it is diagonal print '*' otherwise print '-'
//i==j --> for left to right diagonal
//(i+j)==(size+1) -->right to left diagonal
if(i==j || (i+j)==(size+1))
{
printf("*");
}
else
{
printf("-");
}
j++;
}
i++;
//print new after each row
printf("\n");
}
return 0;
}
Sample Runs Results:
./x
Enter size: 5
*---*
-*-*-
--*--
-*-*-
*---*
./x
Enter size: 9
*-------*
-*-----*-
--*---*--
---*-*---
----*----
---*-*---
--*---*--
-*-----*-
*-------*
./x
Enter size: 15
*-------------*
-*-----------*-
--*---------*--
---*-------*---
----*-----*----
-----*---*-----
------*-*------
-------*-------
------*-*------
-----*---*-----
----*-----*----
---*-------*---
--*---------*--
-*-----------*-
*-------------*
Image Of Code:
Image Of Sample Runs Results: