题目描述
唐老师最近在编一个操作系统,正好编到鼠标的繁忙状态,需要一个沙漏符号,正好大家都在学C++,你的任务就是帮赵老师编一个程序打印一个沙漏符号。
输入
一个整数n,符号的行数(保证n是大于1的奇数)
输出
沙漏符号,使用“*”打印
样例输入
5
样例输出
***** *** * *** *****
思路:把沙漏分成上部分,和下部分,上部分占n/2+1行,下部分占n/2行
代码如下:
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
for (int i = 1; i <= n / 2 + 1; i++) //打印沙漏上部分和中间部分的行数
{
for (int j = 1; j < i; j++)
{
printf(" ");
}
for (int j = 1; j <= n - i * 2 + 2; j++)
{
printf("*");
}
printf("\n");
}
for (int i = 1; i <= n / 2; i++)//打印沙漏下部分
{
for (int j = n / 2; j > i; j--)
{
printf(" ");
}
for (int j = 1; j <= i * 2 + 1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}