作者jashking (拉拉拉)
看板java
標題[問題] 寫猜數字程式
時間Fri Aug 29 12:02:07 2008
這是我寫的猜數字程式碼
但是在比對 使用者跟電腦產生的數字的時候
A跟B不會加..
int []answer=new int[4];
int a=0,b=0;
for(int i=0;i<answer.length;i++)
answer[i]=(int)(10*Math.random());
//隨機產生四位數
for(int i=0;i<answer.length;i++)
System.out.print(answer[i]);
//顯示產生的數字
BufferedReader buf = new BufferedReader
(new InputStreamReader(System.in));
System.out.print("請輸入數字(0000~9999):");
String guess = buf.readLine();
System.out.println("您輸入的數字: " + guess);
//取得輸入數字
// for(int i=0;i<4;i++)
// System.out.println("guess.charAt"
+"["+i+"]"+"="+guess.charAt(i));
// for(int i=0;i<4;i++)
// System.out.println("answer"+"["+i+"]"+"="+answer[i]);
// //驗證陣列
(這是我原本拿來驗證用的 抱歉)
for(int i=0;i<4;i++){
for(int j=0;j<4;j++)
if (guess.charAt(i)==answer[j]){
if(i==j)
a++;
else
b++;
}
}System.out.println(a+"A"+b+"B");
//比對數字且輸出結果
我努力了一整天 還是不知道到底錯在那 A跟B永遠都是0
煩請高手解答ˊˋ
原來我插入驗證的地方插錯了...難怪沒發現到 抱歉
感激版主跟底下推文的人^^"
原本我以為guess.charAt(i) 可以把guess的字串轉成數字格式
不好意思 我程式很差 讓大家見笑了^^||
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.169.65.35
推 Srjiang:要不要在a++跟b++的地方印一下log 看有沒有執行到? 08/29 12:22
推 Srjiang:順便印一下 guess.charAt(i) 和 answer[j] 哦 08/29 12:24
推 gotoo:guess.charAt(i)回傳的是字元不是int 08/29 12:57
※ 編輯: jashking 來自: 218.169.65.35 (08/29 13:28)
※ 編輯: jashking 來自: 218.169.65.35 (08/29 13:32)