东华OJ 76 字符串排序

问题描述 :

明明刚刚开始学英文,对于26个英文字母的顺序总是记不住,每次默写英文字母的时候,顺序总是前后颠倒。明明的爸爸对此相当着急,想有没有很好的办法来帮助明明记住字母的顺序。一天,明明的爸爸突然想到了一个游戏,能够帮助明明记住英文字母。这个游戏如下,给明明一个任意长度的英文字串,其中只包含小写字母,然后让明明对字符串中的字母排序,然后再把排完序的字符串写出来,如果连续写对10次的话,明明的爸爸就会奖励他,带他出去吃KFC。 例如:有一个字符串为asdf,经过排序后的字符串就是adfs。 明明显然对这个游戏非常感兴趣(其实明明更感兴趣的是那顿KFC),接受了他爸爸的提议,玩起了这个游戏。但是明明的爸爸在出题目考明明的时候,自己却犯了难,用英文随便写出一个无序的英文字符串是很简单的,但是排序的话却要费一些功夫,而且还不能出错,否则就无法知道明明做的对不对了。于是明明的爸爸请你帮忙,帮他写一个排序程序,来输出排序后的字符串。

明明爸爸的问题可以归结为:输入一行字符串,全部由小写字母构成,对字符串按26个英文字母的先后顺序进行排序,然后输出。

输入说明 :

你写的程序要求从标准输入设备中读入测试数据作为你所写程序的输入数据。标准输入设备中有多组测试数据,每组测试数据仅占一行,每行由一个字符串组成,字符串中只包含小写字母,字符串的长度不超过100个字符。每组测试数据与其后一组测试数据之间没有任何空行,第一组测试数据前面以及最后一组测试数据后面也都没有任何空行。

输出说明 :

对于每一组测试数据,你写的程序要求计算出一组相应的运算结果,并将这一组运算结果作为你所写程序的输出数据依次写入到标准输出设备中。每组运算结果为一个排序后的字符串。每组运算结果单独形成一行数据,其行首和行尾都没有任何空格,每组运算结果与其后一组运算结果之间没有任何空行,第一组运算结果前面以及最后一组运算结果后面也都没有任何空行。

#include<stdio.h>

int main()
{
	char str[200];
	int min;
	char minc='z';
	while(gets(str))
	{
		for(int i=0;str[i]!='\0';i++)
		{
			for(int j=i;str[j]!='\0';j++)
			{
				if(str[j]<minc){
					minc=str[j];
					min=j;
				}
			}
			str[min]=str[i];
			str[i]=minc;
			minc='z';
		}
		for(int k=0;str[k]!=NULL;k++)
			printf("%c",str[k]);
		printf("\n");
	}
	return 0;

}        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值