
附源码:
#include <stdio.h>
int main()
{
int n;
char c;
scanf("%d %c", &n, &c);
//沙漏需要的字符个数
int sum = 1;
//层数
int i = 1;
int num = 0;
while ( sum <= n )
{
//打印完整沙漏需要的个数
sum += 2 * ( 2 * ( i + 1 ) - 1 );
if( sum <= n )
{
i++;
}
}
//打印上半部分
int j, k;
for ( j = 0; j < i ; j++ )
{
for ( k = 0 ; k < j ; k++ )
{
printf(" ");
}
for ( k = 0 ; k < 2 * ( i - j ) - 1 ; k++ )
{
printf("%c", c);
num++;
}
printf("\n");
}
//小于7个*,不会有下半部分
for ( j = 2; j <= i ; j++ )
{
for ( k = 0; k < i - j ; k++)
{
printf(" ");
}
for ( k = 0 ; k < 2 * j - 1; k++ )
{
printf("%c", c);
num++;
}
printf("\n");
}
printf("%d", ( n - num ));
return 0;
}
本文介绍了一段使用C语言实现沙漏图案打印的代码,通过输入特定的数字和字符,程序将根据输入生成相应的沙漏形状。文章详细展示了代码的逻辑流程,包括计算沙漏所需的字符数量、打印沙漏的上半部分和下半部分。

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



