目录
问题描述
多组输入整数,当输入一个整数时(2-20),输出表示组成“X"的反斜线和正斜线的长度
输入:5 输出: * * * * * * * * * 输入:10 输出: * * * * * * * * ** ** * * * * * * * *
问题转化
1. 对于任意输入n,输出n*n的矩阵形状(这里不考虑间距),比如输入10
2. 主对角线,行和列位置相等
主对角线的位置:第0行第0列;第1行第1列;第2行第2列;等等
3. 反对角线,行位置+列位置=输入数-1
反对角线位置:第0行第9列;第1行第8列;第2行第7列,等等
代码实现
根据以上分析,下面通过两种思路实现。
#include <stdio.h>
int main()
{
int num = 0;
char arr[20][20];
while (scanf("%d", &num) != EOF)
{
int i = 0;
int j = 0;
for (i = 0; i < num; i++)
{
for (j = 0; j < num; j++)
{
if (i == j || j+i == num - 1)
{
arr[i][j] = '*';
printf("%c", arr[i][j]);
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
#include <stdio.h>
int main()
{
int num = 0;
while (scanf("%d", &num) != EOF)
{
int i = 0;
int j = 0;
for (i = 0; i < num; i++)
{
for (j = 0; j < num; j++)
{
if (i == j || j + i == num - 1)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
//运行结果 10 * * * * * * * * ** ** * * * * * * * * 20 * * * * * * * * * * * * * * * * * * ** ** * * * * * * * * * * * * * * * * * *