打印沙漏 C语言

先列出完整程序
#include<stdio.h>
int main(){
int N,num=1,i=1,j=1,sum;
char n;
scanf("%d %c",&N,&n);
while(i<=N){
j+=2;
i+=j*2;
num+=2;
}
i-=j*2; //计算组成沙漏的最大个数
num-=2; //计算沙漏行数
sum=N-i;//计算剩余数
//上半部分
for(j=0;j<num/2+1;j++){
for(i=0;i<j;i++){
printf(" ");
}
for(i=0;i<num-j*2;i++){
printf("%c",n);
}
printf("\n");
}
//下半部分
for(j=1;j<=num/2;j++){
for(i=1;i<=num/2-j;i++){
printf(" ");
}
for(i=1;i<=j*2+1;i++){
printf("%c",n);
}
printf("\n");
}
printf("%d\n",sum);//输出剩余数
return 0;
}
结果展示:

1.先计算组成沙漏所需的最大个数,行数,以及剩余的符号数
scanf("%d %c",&N,&n);
while(i<=N){
j+=2;
i+=j*2;
num+=2;
}
i-=j*2; //计算组成沙漏的最大个数
num-=2; //计算沙漏行数
sum=N-i;//计算剩余数
2.将沙漏分为上下两部分,上部分为倒三角,下部分为基层部分
//上半部分
for(j=0;j<num/2+1;j++){
for(i=0;i<j;i++){
printf(" ");
}
for(i=0;i<num-j*2;i++){
printf("%c",n);
}
printf("\n");
}
倒三角部分:

//下半部分
for(j=1;j<=num/2;j++){
for(i=1;i<=num/2-j;i++){
printf(" ");
}
for(i=1;i<=j*2+1;i++){
printf("%c",n);
}
printf("\n");
}
基层部分:

C语言实现打印沙漏
本文介绍了如何使用C语言编写程序来打印沙漏图案。程序首先计算构成沙漏所需的符号数量和行数,然后分别绘制倒三角形和底部的正三角形。通过这种方式,实现了完整的沙漏图形输出。
1617

被折叠的 条评论
为什么被折叠?



