ERIC 是我們開發部的課長;
會JAVA的就屬ERIC和JACK。
11/3 的下午,
我鼓起勇氣,
問了ERIC 關於JAVA的事情,
他說他要幫我看一下無法得到執行結果的訊息寫些什麼。
11/3 的晚上,
ERIC說他找不出訊息的原因是什麼,
只好要我另請高手,
可是ERIC問了我,整個程式的問題所在在哪?
結果,他說他要幫我改程式,
整個超級高興的啦。
11/3 的半夜兩點半,
ERIC改好了我的程式問題了,
可是執行時一樣有怪訊息,
也許是環境設定的問題耶。
後來他教我到開始→執行→打cmd→打 java 檔名,
原來這樣也能執行耶~超神
他說,改好的仍是有些小BUG,
因為只要輸入奇數,
也就是無法被1除盡的,
就會出現錯誤 >
不過,我心想:沒關係,這樣就夠了。
呼,總覺得太麻煩他了啦
11/4 的晚上11點多,
ERIC主動密我,
他說他把小BUG都改好囉。
11/4 的半夜1:51也就是現在,
ERIC說要把新舊程式,
寫上註解,讓我一目了然,
這樣也方便我去問其他工程師,哈~
心裡只有感謝再感謝,
還感謝他為我講解了一些程式的內容,
謝謝你。
老師出的題目:
以第四章之BinarySerach為例,由亂數產生不重覆數(區間範圍由使用者決定),
陣列大小由使用者決定;
排序前後每行顯示幾個數字由使用者決定。
顯示出搜尋次數。
ERIC 版最後解答:
import java.io.* ;
public class BinarySearch
{
public static void main(String[] args) throws Exception
{
BufferedReader br=new BufferedReader
(new InputStreamReader(System.in)) ;
System.out.print("請輸入陣列大小 ? " ) ;
int size = Integer.parseInt(br.readLine());//讀入一列並轉成整數然後指定給整數變數
int[] aNum =new int[size] ;
int big, small, line, time;
System.out.print("請輸入區間範圍最大值為 ? " ) ;
big = Integer.parseInt(br.readLine());//讀入一列並轉成整數然後指定給整數變數
System.out.print("請輸入區間範圍最小值為 ? " ) ;
small = Integer.parseInt(br.readLine());//讀入一列並轉成整數然後指定給整數變數
System.out.print("請輸入每行顯示數字為 ? " ) ;
line = Integer.parseInt(br.readLine());//讀入一列並轉成整數然後指定給整數變數
for(int i=0 ; i
aNum[i] = (int)(Math.random()*(big-small+1)+(small));
if (i!=0) //第一個數字不需比對
{
for (int k=0; k
if (aNum[k]== aNum[k+1])
i--;
}
}
System.out.println();
System.out.print(" 排序前:") ;
System.out.println();
for(int i=0 ; i
System.out.print("\t" + aNum[i]) ;
if (((i+1)%line)==0 )
System.out.println();
}
System.out.println() ;
int n = aNum.length ;
int t ;
for (int i=n-2 ; i>=0 ; i--) //進行氣泡排序法
{
for(int j=0 ; j
{
if (aNum[j] > aNum[j + 1])
{
t = aNum[j];
aNum[j] = aNum[j + 1];
aNum[j + 1] = t;
}
}
}
System.out.print(" 排序後:") ;
System.out.println() ;
for(int i=0 ; i
System.out.print("\t" + aNum[i]) ;
if (((i+1)%line)==0 )
System.out.println() ;
}
System.out.println();
System.out.print(" 請輸入要搜尋的數字: ") ;
int searchNum = Integer.parseInt(br.readLine());//讀入一列並轉成整數然後指定給整數變數
int times = 0, num=-1, low=0, high=aNum.length-1, midNum=0 ;
do
{
times++;
midNum=(low+high)/2;
if (aNum[midNum] == searchNum)
{
num=midNum;
break;
}
if (aNum[midNum] > searchNum)
high=midNum-1 ;
else
low=midNum+1 ;
} while (low
if (num==-1)
System.out.println(" 沒有 " + searchNum + " 這個數字!共搜尋了"+times+"次") ;
else
System.out.println(" 排序後找到 " + searchNum + " 是第 " + (num+1) + " 個數字!共搜尋了"+times+"次") ;
}
}
期待ERIC 註解版的程式碼。。
這幾天為了JAVA還真的晚睡 @@