题目一:打印沙漏
1)代码截图
#include <stdio.h>
int main(void)
{
int n;
char c;
scanf("%d %c",&n,&c);
int sum=1;
int i=1;
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);
}
printf("\n");
}
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);
}
printf("\n");
}
printf("%d",n-(sum-2*(2*(i+1)-1)));
}
2)设计思路
首先要确定打印符号的数量,这是个数学找规律题目,其次就是利用for语句的嵌套完成输出沙漏
3)本题调试过程中遇到的问题及解决方案
问题一:k的范围搞错了
问题一的解决方案:不断的输入数字一遍遍的调试查看结果
4)运行结果截图