【问题描述】编写一个程序,输入一个正整数N,在屏幕上用@,打印以N为边长的正六边形。
【输入形式】输入一个正整数N。
【输出形式】屏幕上输出以N为边长的正六边形。
【样例输入】
4
【样例输出】
@@@@ @ @ @ @ @ @ @ @ @ @ @@@@
【样例说明】输入的为一个正整数,打印输出一个以这个正整数为边长的正六边形。
#include<stdio.h>
int main()
{
int N;
printf("输入边长:");
scanf("%d", &N);
//第一行
for (int i = 0;i < N;i++) {
if (i == 0) {
for (int j = 0;j <N;j++) {
printf(" ");
}
}
printf("@");
}
printf("\n");
//第2到2*n-2行
for (int i = 1;i < N;i++) {
for (int j = 0;j <=N-i-1;j++) {
printf(" ");
}
printf("@");
for (int k = 0;k < N+2*i-2;k++) {
printf(" ");
}
printf("@");
printf("\n");
}
for (int i = N-2;i >0;i--) {
for (int j = 0;j <= N - i - 1;j++) {
printf(" ");
}
printf("@");
for (int k = 0;k < N + 2 * i - 2;k++) {
printf(" ");
}
printf("@");
printf("\n");
}
//最后一行
for (int i = 0;i < N;i++) {
if (i == 0) {
for (int j = 0;j < N;j++) {
printf(" ");
}
}
printf("@");
}
return 0;
}