PAT_1027 (Basic Level) Practise (中文)

#include<stdio.h>
int main(){
char C;
int N,i,a;
int cnt=0,cnt_1=0,cnt_2,sum1=1,sum2=7,sum3,j=1;
scanf("%d %c",&N,&C);
if(N>=7){
for(i=3; ;i+=2){//求出层数 
sum1=sum1+2*i;
sum2=sum2+2*(i+1);
cnt++;
if(N>=sum1&&N<sum2){
break;
}
}
cnt_2=cnt;
a=N-sum1;
do{//输出沙漏上面 
for(i=0;i<2*cnt+1;i++){
printf("%c",C);
}
printf("\n");
cnt_1++;
if(cnt>0){
for(i=0;i<cnt_1;i++){
printf(" ");
  }
}
}while(cnt--);


do{//输出沙漏下面 
sum3=2*j+1;
j++;
for(i=0;i<cnt_1-2;i++){
printf(" ");
  }
  cnt_1--;
  if(cnt_2>0){
for(i=0;i<sum3;i++){
printf("%c",C);
}
printf("\n");
  }
}while(cnt_2--);
 }
if(N>=1&&N<7){//只有一层输出 
printf("%c\n",C);
a=N-1;
}
printf("%d",a);
return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值