1220 - C语言8.23

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

编写一个函数,使用“起泡法”(冒泡排序)对输入的n个字符按从小到大顺序排列。并在主函数中输出排序完毕的字符串。

题目输入

一行字符,可能包含空格。保证字符串的长度不超过100。

题目输出

输出从小到大排序完毕的字符串。

请注意行尾输出换行。

输入/输出样例

输入格式

This is not a program

输出格式

    Taaghiimnooprrsst

C语言解答

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void mypai(char a[],int n);

int main()
{
	char a[101];
	gets(a);
	if(strlen(a)>100)
		exit(0);
	mypai(a,strlen(a));
	puts("");
	return 0;
}

void mypai(char a[],int n)
{
	int i,j;
	char t;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n-i-1;j++)
		{
			if(a[j]>a[j+1])
			{
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
		}
	}
	for(i=0;i<n;i++)
	{
		printf("%c",a[i]);
	}
return 0;
}

C++解答

#include <stdio.h>
#include <string.h>
int main() {
	void sort(char str[], int len);
	char str[101];
	gets(str);
	sort(str, strlen(str));
	puts(str);
	return 0;
}
void sort(char str[], int len) {
	int i, j;
	char temp;
	for (i = 0;i < len;i++) {
		for (j = 0;j + 1 < len - i;j++) {
			if (str[j] > str[j + 1]) {
				temp = str[j];
				str[j] = str[j + 1];
				str[j + 1] = temp;
			}
		}
	}
}

Java解答



import java.util.Arrays;
import java.util.Scanner;

public class Main{
   private static Scanner s = new Scanner(System.in) ;
   
   public static void main(String[] args) {
	  String str = s.nextLine() ;
	  char[]c = str.toCharArray() ;
	  
	  Arrays.sort(c);
	  
	  for (int i = 0; i < c.length; i++) {
		 System.out.print(c[i]);
	  }
	  
	  System.out.println();
   }
}