English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類
0

以下是我的程式嗎
import java.io.*;
import java.util.*;
public class BubbleSort {
public static void main(String[] argv)
throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("想用幾個數字做排序? ");
int number = Integer.parseInt(br.readLine());
System.out.print("請輸入 " + number + " 個數字(用空白鍵間隔): ");
StringTokenizer tokenizer = new StringTokenizer(br.readLine());
int[] data = new int[number];
int temp;
for (int i = 0; i < data.length; i++) {
for(int j = 0;j < data.length - 1 - i;j++ ) {
if(data[j] > data[j + 1]) {
temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
System.out.print(data[i] +".");
}
}
}

2006-12-22 19:18:32 · 2 個解答 · 發問者 Anonymous in 電腦與網際網路 程式設計

想要請問的是
為什麼執行後的結果,是000而不是輸入的數字~
還有~
能不能不用util來寫..
麻煩幫我解惑...

2006-12-22 19:19:29 · update #1

2 個解答

 可以不用 java.util.StringTokenizer 來寫,但就得要自行寫個方法來讀取並分隔使用者所輸入的數字。至於為什麼你的程式碼輸出的結果皆為 0,是因為沒有將使用者輸入的數字轉換並存入陣列中,我已就這些地方做了些修正,請參考之。

import java.io.*;

public class BubbleSort {
public static void main(String[] argv)
throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("想用幾個數字做排序? ");
int number = Integer.parseInt(br.readLine());
System.out.print("請輸入 " + number + " 個數字(用空白鍵間隔): ");
String str = br.readLine();

int[] data = new int[number];
int temp = 0;

// 將使用者輸入之字串轉換為以空白做分隔的數字陣列
for (int i = 0; i < number; i++) {
int x = str.indexOf(' ', temp);
if (i == number - 1) {
data[i] = Integer.parseInt(str.substring(temp));
break;
}
data[i] = Integer.parseInt(str.substring(temp, str.indexOf(' ', temp)));
temp = x+1;
}

for (int i = 0; i < data.length; i++) {
for(int j = 0;j < data.length - 1 - i;j++ ) {
if(data[j] > data[j + 1]) {
temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
System.out.print(data[i] +".");
}
}
}

2006-12-22 23:08:49 · answer #1 · answered by ? 7 · 0 0

import java.io.*;
import java.util.*;
public class BubbleSort {
public static void main(String[] argv)
throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("キQ・ホエXュモシニヲrーオアニァヌ? ");
int number = Integer.parseInt(br.readLine());
System.out.print("スミソ鬢J " + number + " ュモシニヲr(・ホェナ・ユチ荼。ケj): ");
StringTokenizer tokenizer = new StringTokenizer(br.readLine());
int[] data = new int[number];
int k = 0;
while(tokenizer.hasMoreTokens()){
data[k++] = Integer.parseInt(tokenizer.nextToken());
}
int temp;
for (int i = 0; i < data.length; i++) {
for(int j = 0;j < data.length - 1;j++ ) {
if(data[j] > data[j + 1]) {
temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
for(int e:data)
System.out.print(" "+e);
}
}

2006-12-23 09:24:04 補充:
int k = 0;
while(tokenizer.hasMoreTokens()){
data[k ] = Integer.parseInt(tokenizer.nextToken());
}
....
for(int e:data)
System.out.print(" " e);

我大概修改了一下。
增加上面兩段程式碼…

還有回答一下你的問題
如果不用util裡的類別,那StringTokenizer就不能用了
那你可能要用別的方法寫

2006-12-23 04:20:06 · answer #2 · answered by ? 2 · 0 0

fedest.com, questions and answers