PAT考试乙级1027(C语言实现)

#include
#include
int main(){
    int n,m,t,i,j;
    char c;
    scanf("%d %c",&n,&c);
    m=1;//中间那一个符号
    n=n-m;//去掉中间那一个符号
    while(n-2*(m+2)>=0){
        m=m+2;
        n=n-2*m;
    }
    t=m/2;
    for(i=0;ifor(j=0;jabs(i-t);j++)
            printf(" ");
        for(j=0;j<abs(t-i)*2+1;j++)
            printf("%c",c);
        printf("\n");
    }
    printf("%d",n);
    return 0;
}

总结:
1、得到m的值,即循环多少行。
2、PAT考试乙级1027(C语言实现)_第1张图片
加abs()绝对值函数 只要是防止打印下半部分时会出现负数。

你可能感兴趣的:(PAT)