2018秋季寒假作业4-打印沙漏

题目一:打印沙漏

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)运行结果截图

猜你喜欢

转载自www.cnblogs.com/wangweihanqq2001/p/10399250.html