问答详情
源自:4-15 编程练习

我觉得我的代码没错,但是他一直说检查输出是否有包含”它是个三位的数!”

public class HelloWorld{

public static void main(String[] args){

int num = 999;

int count = 0;

while(num!=0)

{

    int n = num % 10;

    if(n != 0)

    count += 1;

    num /= 10;

}

System.out.println("它是个"+count+"位的数!\n");

}

}


提问者:啊哈哈哈哈百无聊赖 2017-02-08 15:33

个回答

  • 雨Gemini
    2017-02-24 22:52:35

    感叹号中英文的区别吧


  • qq_v卐v_0
    2017-02-10 14:49:31

    我放到eclipse运行了,结果是对的


  • 温酒煮胖豆
    2017-02-08 16:36:18

    把count+=1;放在while循环的第一句结果才正确。

    假如说num=9的时候,第一个判断num%10=0,这时候就不会进入if语句,count也不会+1,这时候输出的结果就是它是个0位数,显然结果是错的。

  • ziom
    2017-02-08 16:00:26

    这又不是真实的开发环境,只是慕课网为了教学弄出来的网页版,不用太计较,实在过不去就跳过这节,你自己知道就行了,如果有强迫症可以试试下面的写法,这是我当初写的,应该能过:

    public class HelloWorld{
    public static void main(String[] args){
        int num = 999;
        int count = 0;
    
        if (num >= 0 && num <= 999999999) {
            do {
                count++;
                num /= 10;
            } while (num != 0);
            System.out.println("它是个" + count + "位的数!");
        } else {
            System.out.println("输入错误!");
        }
    }
    }

    求采纳!

  • 衆人皆醉我独箐
    2017-02-08 15:58:29

    你不妨试一试输出结果,count最终得到的是3,而不是“三”

  • FMountain
    2017-02-08 15:52:40

    代码没问题 是网页编辑器的问题,你试试去去空格,去去打印的多余的字符