从键盘输入一个任意的整数,打印沙漏型星号图案。
代码如下:
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i,j,size; //其中size表示图形的总行数
printf("请输入一个整数:\n");
scanf("%d",&size);
//漏斗形星号的总行数必须为奇数
if(size == 0 || size % 2 == 0 ){
exit(-1); //由于错误终止程序
}
//打印上半层星号
for(i = 1; i <= (size + 1) / 2; i++){
//1.打印空格
for(j = i -1; j > 0; j--){ // i-1表示上半层空格数与行数的关系
printf(" ");
}
//2.打印星号
for(j = size - (i - 1) * 2; j > 0 ; j --){ //size - (i - 1) * 2表示星号数与行数的关系
printf("*");
}
printf("\n");
}
//打印下半层星号
for(;i <= size;i++){
//1.打印空格
for(j = size - i; j > 0; j--){
printf(" ");
}
//2.打印星号
for(j =