PAT 乙 1027 打印沙漏 最简单的C语言实现 AC
2018-03-24 10:21
204 查看
#include<stdio.h>
int main(){
int n,sum=1,hang=1,h=1;//hang表示当前行的输出字符个数 h表示最大行字符个数
char c;
scanf("%d %c",&n,&c);
while(sum<=n){
hang+=2;
sum+=hang*2;
}
sum-=hang*2;//sum表示用到的字符个数
hang-=2;
h=hang;
for(int i=0;i<h/2;i++){//打印上半部分,共h/2行
for(int j=0;j<i;j++) putchar(' ');
for(int j=0;j<hang;j++) putchar(c);
putchar('\n');
hang-=2;
}
for(int i=0;i<h/2+1;i++){//打印下半部分,包括h/2+中间1行
for(int j=0;j<h/2-hang/2;j++) putchar(' ');
for(int j=0;j<hang;j++) putchar(c);
putchar('\n');
hang+=2;
}
printf("%d",n-sum);
return 0;
}
int main(){
int n,sum=1,hang=1,h=1;//hang表示当前行的输出字符个数 h表示最大行字符个数
char c;
scanf("%d %c",&n,&c);
while(sum<=n){
hang+=2;
sum+=hang*2;
}
sum-=hang*2;//sum表示用到的字符个数
hang-=2;
h=hang;
for(int i=0;i<h/2;i++){//打印上半部分,共h/2行
for(int j=0;j<i;j++) putchar(' ');
for(int j=0;j<hang;j++) putchar(c);
putchar('\n');
hang-=2;
}
for(int i=0;i<h/2+1;i++){//打印下半部分,包括h/2+中间1行
for(int j=0;j<h/2-hang/2;j++) putchar(' ');
for(int j=0;j<hang;j++) putchar(c);
putchar('\n');
hang+=2;
}
printf("%d",n-sum);
return 0;
}
相关文章推荐
- PAT Basic 1027. 打印沙漏(20)(C语言实现)
- PAT (Basic Level) Practise (中文)1027. 打印沙漏(20) C语言
- 1027. 打印沙漏(20)-浙大PAT乙级真题java实现
- PAT乙级1027(C语言)-打印沙漏(20)
- PAT乙级—1027. 打印沙漏(20)-native
- PAT 乙级 1027. 打印沙漏
- pat乙1027. 打印沙漏
- PAT-B 1027. 打印沙漏(20)
- PAT_乙级 1027 打印沙漏
- PAT 1027 打印沙漏
- PAT乙级1027. 打印沙漏(20)
- PAT乙级1027 打印沙漏
- PAT乙级1027. 打印沙漏(20)
- PAT乙级 1027. 打印沙漏(20)
- 1027. 打印沙漏(20) PAT
- PAT乙级.1027. 打印沙漏(20)
- [PAT乙级]1027. 打印沙漏(20)
- PAT --- 1027. 打印沙漏(20)
- PAT 1027 打印沙漏
- [PAT-乙级]1027.打印沙漏