4-15編程練習答案錯誤
if(num>=0&&num<=9999999999){
? ? do
? ? {
? ? ? ? count++;
? ? ? ? num/=10;
? ? }while(num!=0);
? ? System.out.println(count+"位數");
}else{
? ? System.out.println("輸入有誤");
}
給出的答案會把0判斷成0位數
if(num>=0&&num<=9999999999){
? ? do
? ? {
? ? ? ? count++;
? ? ? ? num/=10;
? ? }while(num!=0);
? ? System.out.println(count+"位數");
}else{
? ? System.out.println("輸入有誤");
}
給出的答案會把0判斷成0位數
2016-12-06
舉報
2016-12-06
package study;
import java.util.Scanner;
public class NumWeiShu {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("請輸入一串小于10位的數字");
int num = in.nextInt();
int i = 0;
do{
num = num / 10;
i++;
if(num == 0){
System.out.println("您輸入的數字是"+i+"位");
}
}while(num > 0);
}
}
2016-12-06
試試這個代碼,并沒有太大的改變,只是把
count++;
? ? ? ? ? ? num/= 10;
變成了count=count+1;
num=num/10;
2016-12-06
最小的一位數是1,所以你可以在前面的if判斷中把等于0的情況排除掉,即把小于等于0的等號去掉。
或者不使用do。。。while,而直接用while, 或者其他辦法。
共同學習。。。
2016-12-06
2016-12-06
public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
? ? if(num >= 0 && num <=999999999){
? ? ? ? while (num != 0){
? ? ? ? ? ? count++;
? ? ? ? ? ? num/= 10;
? ? ? ? }
? ? ? ? ?System.out.println("它是個" + count + "位的數!");
? ? }else{
? ? ? ? ?System.out.println("請重新輸入");
? ? }