码迷,mamicode.com
首页 > 其他好文 > 详细

7-1

时间:2019-02-16 15:18:30      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:for   部分   include   sum   can   int   i+1   打印   while   

实验代码

#include <stdio.h>
int main()
{
    int n;
    char c;
    scanf("%d %c",&n,&c);
    int sum=1;//沙漏需要的字符个数
    int i=1;//层数
    while(sum<=n)
    {
        sum+=2*(2*(i+1)-1);//2n-1是一层的个数,乘以2代表两层一共需要的
        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)));


}

这一题起初我是不知道从何下手的,在博客里面看了其他的大佬做的后然后自己得出的

1先定义一个数值n和一个字符c

2.然后搞清楚沙漏的形状

3.然后在运用公式进行编程

7-1

标签:for   部分   include   sum   can   int   i+1   打印   while   

原文地址:https://www.cnblogs.com/bramblesrose/p/10387594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!