1027 打印沙漏 (20分)

题目

https://pintia.cn/problem-sets/994805260223102976/problems/994805294251491328


输出的“*”后无空格,如果有空格会导致格式错误.
1027 打印沙漏 (20分)_第1张图片

代码

#include 
#include 
#include 
int main()
{
    int N;
    char symbol;
    if(scanf("%d %c",&N,&symbol)==2)
    {
        int level=(int)sqrt((N+1)/2);		//计算上三角所需要的层数,下三角只需输出level-1层
        for(int i=level;i>=1;i--)
        {
            for(int j=0;j<level-i;j++)
                printf(" ");
            for(int j=0;j<2*i-1;j++)
                printf("%c",symbol);

            printf("\n");
        }
        for(int i=2;i<=level;i++)
        {
            for(int j=0;j<level-i;j++)
                printf(" ");
            for(int j=0;j<2*i-1;j++)
                printf("%c",symbol);

            printf("\n");
        }
        printf("%d",N-2*level*level+1);
    }

    return 0;
}

结果

1027 打印沙漏 (20分)_第2张图片

你可能感兴趣的:(C语言,#,PAT,basic)