打印沙漏

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("
");
		e=e-1;//绝对值让空格数从少到多,再到少。
		i=i-2;//每层星数相差两个 
		if(i==-1){
			i=i-2;
		} 
    }
    printf("%d",a-z);
    return 0;
 } 

2)设计思路:

3)调试过程中遇到的问题及解决方法:

没有遇到问题,一次性通过。

4)运行结果截图

原文地址:https://www.cnblogs.com/dzspve/p/10413675.html