南陽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;
}