[南陽OJ-No.4]ASCII碼排序|輸入三個字符(可以重複)後,按各字符的ASCII碼從小到大的順序輸出這三個字符。

南陽OJ-No.4

時間限制3000ms,內存限制65535kb

描述

輸入三個字符(可以重複)後,按各字符的ASCII碼從小到大的順序輸出這三個字符。

輸入

第一行輸入一個數N,表示有N組測試數據。後面的N行輸入多組數據,每組輸入數據都是佔一行,有三個字符組成,之間無空格。

輸出

對於每組輸入數據,輸出一行,字符中間用一個空格分開。

樣例輸入

2
qwe
asd

樣例輸出

e q w
a d s


時間200,內存373

/*2017.1.31
 * jdk1.7
 * ASCII碼排序
 * */
import java.util.*;

public class Main {     //程序入口
    public static void main(String[] args) throws Exception {   //應程序要求,OJ規範,拋出異常
        Scanner cin = new Scanner(System.in);   //採用Scanner讀取控制檯
        int a = cin.nextInt();  //記錄數據組數

        for (int n=a; n>=1; n--) {      //每組
            char m, v, p;   //記錄三個char字符
            String s1 = cin.next();     //Scanner讀入的是一個String
            //讀取字符串中的字符
            m = s1.charAt(0);
            v = s1.charAt(1);
            p = s1.charAt(2);

            sort1(m, v, p); //方法調用
        }
    }

    //方法:輸入三個字符(可以重複)後,按各字符的ASCII碼從小到大的順序輸出這三個字符。
    public static void sort1(char a, char b, char c) {
        char t1 = a;  //分別定義三個char變量用於記錄形參傳來的三個值
        char t2 = b;
        char t3 = c;
        char t; //臨時變量
        //三個數字,按增序輸出
        if (t1 > t2) { //如果第一個數大於第二個數,交換第一個數和第二個數 
            t = t1; //交換t1和t2 
            t1 = t2;
            t2 = t;
        }
      //此時第一個數一定比第二個數小 
        if(t3 < t1)//若第三個數比t1小 
            System.out.println(t3 + " " + t1 + " " + t2 + "\n");
        else if(t3 > t2) //若第三個數比t2大 
            System.out.println(t1 + " " + t2 + " " + t3 + "\n");
        else //第三個數介於t1和t2之間 
            System.out.println(t1 + " " + t3 + " " + t2 + "\n");
    }
}

時間4,內存240

#include <iostream>
using namespace std;

void sort1(char a, char b, char c)  //輸入三個字符,按字符的ASCII碼從小到大的順序輸出這三個字符
{
  char t1 = a;  //分別定義三個char變量用於記錄形參傳來的三個值
  char t2 = b;
  char t3 = c;
  char t; //臨時變量
  //三個數字,按增序輸出 
  if (t1 > t2)  //如果第一個數大於第二個數,交換第一個數和第二個數 
  {
    t = t1; //交換t1和t2 
    t1 = t2;
    t2 = t;
  }

  //此時第一個數一定比第二個數小 
  if(t3 < t1) //若第三個數比t1小 
    cout << t3 << " " << t1 << " " << t2 << endl; 
  else if(t3 > t2) //若第三個數比t2大 
    cout << t1 << " " << t2 << " " << t3 << endl;
  else //第三個數介於t1和t2之間 
    cout << t1 << " " << t3 << " " << t2 << endl;

} 

int main()  //程序入口 
{
  int a;  //記錄循環次數 

  cin >> a;
  for (int n=a; n>=1; n--) 
  {
    char a,b,c;
    cin >> a >> b >> c;
    sort1(a, b, c);
  }

  return 0;
}
發佈了29 篇原創文章 · 獲贊 39 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章