4-15 編程練習
這個判斷怎么錯了?(4-15 編程練習)
/*
? ? if(num==0){
? ? ? ?System.out.println("它是個1位的數!");?
? ? }else{
? ? ? ? for(int i = 1;num/i!=0;i=i*10){
? ? ? ? ? ? count++;
? ? ? ? }
? ? System.out.println("它是個" + count + "位的數!");
? ? }*/
這個判斷怎么錯了?(4-15 編程練習)
/*
? ? if(num==0){
? ? ? ?System.out.println("它是個1位的數!");?
? ? }else{
? ? ? ? for(int i = 1;num/i!=0;i=i*10){
? ? ? ? ? ? count++;
? ? ? ? }
? ? System.out.println("它是個" + count + "位的數!");
? ? }*/
2016-10-25
舉報
2016-10-26
你把num為0的時候給單獨出來了。而且顯示輸出它是1位數。
問題就是0是1位數呢?還是0位數呢?
而慕課網num為0顯示輸出的是0位數。
2016-10-25
每次用上一次的結果除以10,而不是第一次除以10,第二次除以100,第三次除以1000,你的i=i*10這么寫的是不對的,這樣每次除的i會越來越大,每循環一次i的值增加十倍,不能使得每循環一次原數除以10
2016-10-25
抱歉,說錯了,你寫的是對的,我當做每次num會被重新賦值了。
2016-10-25
你弄個用戶自己輸入,Scanner。。。當輸入-1時你就知道了,應該就是你的for循環區間大小有問題
2016-10-25
每次用上一次的結果除以10,而不是第一次除以10,第二次除以100,第三次除以1000,你的i=i*10這么寫的是不對的,這樣每次除的i會越來越大,每循環一次i的值增加十倍,不能使得每循環一次原數除以10
2016-10-25
并沒有錯