#include <stdio.h>
void theX(int n);
int main() {
int n;
while (scanf("%d", &n) != EOF) {
theX(n);
}
return 0;
}
void theX(int n){
char a[n][n];
int i,j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(i==j||(i+j)==(n-1)) //对角线位置的元素特点为:横纵坐标相等或横纵坐标想加等于边长
a[i][j]='*';
else
a[i][j]=' ';
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++)
printf("%c",a[i][j]);
printf("\n");
}
}
我们可以使用字符数组来解决这个问题。
不难发现“*”出现的位置有一定规律,可以看作是出现在一个正方形的对角线上。
因此可以创建一个n*n的字符数组,在对角线的位置上存入‘*’,非对角线位置存入空格(space)‘ ’;然后在顺序打印整个字符数组,就能出现X形的图形。

京公网安备 11010502036488号