题目:
自测-1 打印沙漏 (20分)
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印
*****
***
*
***
*****
所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。
给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
输入格式:输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。
输出格式:首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。
输入样例:19 *
输出样例:
*****
***
*
***
*****
2
后面搜了下其他博主的题解->_->,才知道PTA有多坑:
这道题有两个要注意的地方: 一是 最后在一行中输出剩下没用掉的符号数。即便是零个也要输出。 二是 中间对齐的时候,只需输出符号前面的空格,符号后面的空格不要输出,不然会报格式错误!!!后面改了就AC了,代码其实很简单一道模拟题:
#include
#include
int main(void)
{
int n,i,k=0,l,cnt,x,an;
char ch;
scanf("%d %c",&n,&ch);
x=sqrt((n+1)/2);//通过这个计算出沙漏的层数
an=n-2*x*x+1;
//printf("x:%d an:%d\n",x,an);这个是测试数据的时候用的
l=2*x-1;
for(i=l,k=0;i>1;i-=2,k++)
{
for(int j=0;j
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?
立即登录/注册


微信扫码登录