寒假编程总结1

.本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

#include<stdio.h>
int main(){
    int i,j,k,n,l=1,t;
    char c=' ';
    scanf("%d %c",&n,&c);
    while(l*l*2-1<=n){
        l++;
    }
    l--;
    k=l;
    for(i=1;i<=k;i++){
        for(j=1;j<i;j++){
            printf(" ");
        }
        for(j=1;j<=2*l-1;j++){
            printf("%c",c);
        }
        l--;
        printf("\n");
    }
    t=k;
    l=2;
    for(i=2;i<=k;i++){
        for(j=1;j<=t-i;j++){
            printf(" ");
        }
        for(j=2*l-1;j>0;j--){
            printf("%c",c);
        }
        printf("\n");
        l++;
    }
    printf("%d\n",n-(2*t*t-1));
    return 0;
}

思路

先通过输入的符号个数得到上三角的行数

2.打印上三角:先打印空格,空格个数通过行号控制,再打印符号,符号的个数也通过行号控制,然后打印回车

3.下三角打印类似上三角,不过下三角的打印从第二行开始,下三角的第一行就是上三角的最后一行

4.得到剩余符号个数

通过吧代码用C++编译器进行编译,发现在此次编辑的代码第4行char c=" "错误应该是单引号,其次在26行中 : 位置错误 ,在第4行没有定义n

猜你喜欢

转载自www.cnblogs.com/xulongfei/p/10259676.html