18.小丑排序

【问题描述】

你在信天翁马戏团(是的,它是由一群小丑组成)从事管理工作,你刚刚写完一个程序的输出是将他们的姓名按长度为非递减的方式排列,名称列表(使每名至少只要它之前的)。然而,你的老板不喜欢这种输出方式,而是希望输出出现更对称,较短的字符串在顶部和底部,而较长的字符串在中间。他的规则是,每一对名称都是在该列表的相对的两端,并且在该组中的第一个名字总是在列表的顶部。比如在下面的第一个例子中,Bo和Pat是第一对,Jean和Kevin是第二对,等等。

【输入形式】

输入由1到多个字符串集合组成,最后一行为0表示输入结束,每个集合开始于一个整数n,表示该集合字符串的个数,接下来n行由n个字符串按长度非递减的方式排列,每个集合至少包含一个但不超过15个字符串,每个字符串不超过25个字符。

【输出形式】

对于每个集合,第一行输出"set-n", n从1开始,接下来的若干行对应输入每个集合重新排列的结果,如样例所示。

【样例输入】

7
Bo
Pat
Jean
Kevin
Claude
William
Marybeth
6
Jim
Ben
Zoe
Joey
Frederick
Annabelle
5
John
Bill
Fran
Stan
Cece
0

【样例输出】

set-1
Bo
Jean
Claude
Marybeth
William
Kevin
Pat
set-2
Jim
Zoe
Frederick
Annabelle
Joey
Ben
set-3
John
Fran
Cece
Stan
Bill
#include<bits/stdc++.h>
using namespace std;
struct team { //因为有对的概念存在,所以用结构体将各对存储起来
	string first;
	string second;
};
int main() {
	int n;
	int key=1;
	while(cin>>n&&n!=0) {
		string arr[n];
		for(int k=0; k<n; k++)
			cin>>arr[k];
		if(n%2==1) { //n为奇数,说明存在单独一个人且名字最长
			team steam[(n-1)/2];
			string str;
			str=arr[n-1];
			//	cout<<str<<endl;
			for(int i=0,j=1,ii=0; ii<n/2; ii++,i+=2,j+=2) {//将各对存入结构体中
				steam[ii].first=arr[i];
				steam[ii].second=arr[j];
			}
			for(int i=0,j=n-1; i<n,j>0; i++,j--) { //再反过来将结构体中的按照规则存入数组中
				if(i==(n-1)/2) {
					arr[i]=str;
					break;
				}
				arr[i]=steam[i].first;
				arr[j]=steam[i].second;
			}
			cout<<"set-"<<key<<endl;
			for(int s=0; s<n; s++)
				cout<<arr[s]<<endl;
			key++;
		}
		if(n%2==0) { //n为偶数,说明存在单独一个人且名字最长
			team steam[n/2];
			for(int i=0,j=1,ii=0; ii<n/2; ii++,i+=2,j+=2) {//将各对存入结构体中
				steam[ii].first=arr[i];
				steam[ii].second=arr[j];
			}
			for(int i=0,j=n-1; i<n,j>0; i++,j--) {//再反过来将结构体中的按照规则存入数组中
				arr[i]=steam[i].first;
				arr[j]=steam[i].second;
				if(i+1==j)break;
			}
			cout<<"set-"<<key<<endl;
			for(int s=0; s<n; s++)
				cout<<arr[s]<<endl;
			key++;
		}
	}
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以使用turtle库来画小丑图像。小丑图像由许多圆形、弧线、椭圆等基本图形组成。在画小丑图像时,需要使用一些常见的绘图命令,比如移动、旋转角度、画弧等等。 下面是一个用Python绘制小丑图像的示例代码: ```python import turtle # 设置画布和画笔参数 turtle.setup(800, 600) turtle.bgcolor("white") turtle.pensize(3) turtle.speed(10) # 绘制小丑脸部 turtle.pu() turtle.goto(0, -200) # 定位到脸的心 turtle.pd() turtle.fillcolor("yellow") turtle.begin_fill() turtle.circle(200) # 画脸部 turtle.end_fill() # 绘制小丑眼睛 turtle.pu() turtle.goto(-70, 50) # 定位到左眼的心 turtle.pd() turtle.fillcolor("white") turtle.begin_fill() turtle.circle(50) # 画左眼 turtle.end_fill() turtle.pu() turtle.goto(70, 50) # 定位到右眼的心 turtle.pd() turtle.fillcolor("white") turtle.begin_fill() turtle.circle(50) # 画右眼 turtle.end_fill() # 绘制小丑嘴巴 turtle.pu() turtle.goto(-100, -80) # 定位到嘴巴的起始点 turtle.pd() turtle.circle(100, 80) # 画嘴巴的上半部分 turtle.circle(100, -160) # 画嘴巴的下半部分 # 绘制小丑鼻子 turtle.pu() turtle.goto(0, 50) # 定位到鼻子的心 turtle.pd() turtle.fillcolor("red") turtle.begin_fill() turtle.circle(30) # 画鼻子 turtle.end_fill() # 绘制小丑的帽子 turtle.pu() turtle.goto(-120, 170) # 定位到帽子的起始点 turtle.pd() turtle.fillcolor("blue") turtle.begin_fill() turtle.goto(120, 170) # 画帽子的上边缘 turtle.goto(100, 250) # 画帽子的右边缘 turtle.goto(-100, 250) # 画帽子的下边缘 turtle.goto(-120, 170) # 画帽子的左边缘 turtle.end_fill() turtle.hideturtle() # 隐藏画笔回到原点 # 成绘图 turtle.done() ``` 你可以将上述代码复制到Python的IDE执行,就能看到一个用Python绘制的小丑图像了。希望这能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值