| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
runtime error...我哪里错了啊。。。先由后至前找到逆序的一个。
从后面选出最小的跟他交换。
断点处之后的数组重新排序。。。。
package p1146;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
while(true){
Scanner input = new Scanner(System.in);
char[] in = input.next().toCharArray();
char[] in2 = new char[50];
char mid;
for (int i=0; i<in.length;i++){
mid = in[i];
in2[i] = mid;
}
if (in[0] == '#'){
System.exit(0);
}
else {
/*
for (int i=0; i<in.length; i++){
System.out.print(in[i]);
}
*/
char temp, temp2, temp3;
int flag;
for (int i=in.length-1; i>0; i--){
if (in[i]>in[i-1]){
temp = in[i];
flag = i;
for (int j=in.length-1; j>i; j--){
if (in[j] <= temp && in[j] > in[i-1]){
temp = in[j];
flag = j;
}
}
temp2 = in[i-1];
in[i-1] = temp;
in[flag] = temp2;
//排序部分
for (int k=in.length-1; k>i; k--){
for (int m=k; m>=i; m--){
if (in[m]>in[k]){
temp3 = in[m];
in[m] = in[k];
in[k] = temp3;
}
}
}
break;
}
}
//判定及输出
flag = 0;
for (int i=0; i<in.length; i++){
if(in[i]==in2[i]){
flag++;
}
}
if(flag == in.length){
System.out.println("No Successor");
System.gc();
}
else {
for (int i=0; i<in.length; i++){
System.out.print(in[i]);
}
System.out.println();
System.gc();
}
}
}
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator