题目:X型图案
题目要求:
多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。针对每行输入,输出用“*”组成的对应长度的直角三角形,每个“*”后面有一个空格。
输入:5
输出:
* *
* *
*
* *
* *
先理解题意,题目中第一个要求就是多组输入,我们可以想到经常用的while循环,代码实现如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int n;
while (scanf("%d", &n) != EOF)
return 0;
}
紧接着,根据题意,正斜线与反斜线我们可以联想到正方形
假设正方形边长为5
*****
*****
*****
*****
*****
5(i)行 5(j)列正斜线就是 j = i
反斜线就是 j = n - i - 1
即可以使用for循环来实现这个代码
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
if (i == j || j == n - i - 1) // ||表示或者,两者成立一种即为真
printf("*");
else
printf(" ");
}
printf("\n");
}
代码整体如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n;
int i, j;
while (scanf("%d", &n) != EOF)
{
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
if (i == j || j == n - i - 1)// ||表示或者,两者成立一种即为真
printf("*");
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
运行结果如下: