1905 - 三个数的排序

通过次数

0

提交次数

0

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

将输入的三个整数按非递减序输出。

题目输入

每行为一个测试用例,每行输入为三个空格隔开的整数。

题目输出

对每行的三个整数,按非递减序输出一行,两个整数之间用一个空格隔开。

输入/输出样例

输入格式

3 2 1
2 1 3
1 3 2
1 2 3

输出格式

1 2 3
1 2 3
1 2 3
1 2 3

C语言解答

#include<stdio.h>
int sort(int a[])
{
	int b;
	for(int i=1;i<3;i++)
		for(int j=0;j<3-i;j++)
			if(a[j]>a[j+1])
			{
				b=a[j+1];
				a[j+1]=a[j];
				a[j]=b;
			}
}
int put(int a[])
{
	for(int i=0;i<3;i++)
		scanf("%d",&a[i]);
}
int main()
{
	int a[3];
	while(put(a)!=EOF)
	{
		sort(a);
		for(int i=0;i<2;i++)
			printf("%d ",a[i]);
		printf("%d\n",a[2]);
	}
	return 0;
}

C++解答

#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
    const int size = 3;
    int arr[size];
    while (cin>>arr[0] >> arr[1] >> arr[2])
    {
          
          int temp;//中间变量 
          //选择排序
          for(int i = 0;i < size;i++){
                  for(int j = i + 1;j < size;j++ ){
                          if(arr[i] > arr[j]){
                                  temp = arr[i];
                                  arr[i] = arr[j];
                                  arr[j] = temp;  
                          }
                  }
          }
          
          //输出
          for(int i = 0;i < size - 1;i++){                  
                  cout<< arr[i] << " ";               
          }
          cout<< arr[size - 1];  
          
          cout << endl;
    } 
    return 0;
} 

Java解答

import java.util.*;
public class Main {
	public static void main(String[] args) {
		int a[]=new int[3],i,j;
		Scanner scan=new Scanner(System.in);
		while(scan.hasNext()) {
			for(i=0;i<3;i++)
				a[i]=scan.nextInt();
			for(i=0;i<3;i++)
				for(j=0;j<2-i;j++) {
					if(a[j]>a[j+1]) {
						a[j]=a[j+1]+a[j];
						a[j+1]=a[j]-a[j+1];
						a[j]=a[j]-a[j+1];
					}
				}
			for(i=0;i<3;i++) {
				System.out.print(a[i]);
				if(i<2)
					System.out.print(" ");
			}
			System.out.print("\n");
		}
	}
}