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

#include<stdio.h>
#include<math.h>
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;i<m;i++){
        for(j=0;j<t-abs(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、这里写图片描述
加abs()绝对值函数 只要是防止打印下半部分时会出现负数。

展开阅读全文

没有更多推荐了,返回首页