打印沙漏
1)程序代码:
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k,a,b,c,d=0;;
char op;
scanf("%d %c",&a,&op);
for(i=3;;i=i+2){
c=i*2;//菱形有上下对称,算总数要乘2.
d=d+c;大于就是多加了一行
if(d+1>a){
i=i-2;
break;
}
if(d+1==a){
break;//
}
}
int z=0;
int g=i;//i从上往下数菱形的层数
int e=(i-1)/2;int f=e;
for(int h=1;h<=g;h++){//菱形层数
for(j=fabs(e);j<f;j++){
printf(" ");
}
for(int k=fabs(i);k>0;k--){
printf("%c",op);
z++;
}
printf("\n");
e=e-1;//绝对值让空格数从少到多,再到少。
i=i-2;//每层星数相差两个
if(i==-1){
i=i-2;
}
}
printf("%d",a-z);
return 0;
}
2)设计思路:
3)调试过程中遇到的问题及解决方法:
没有遇到问题,一次性通过。