为了账号安全,请及时绑定邮箱和手机立即绑定

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

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");

}

}


正在回答

6 回答

感叹号中英文的区别吧


0 回复 有任何疑惑可以回复我~

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


0 回复 有任何疑惑可以回复我~

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

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

0 回复 有任何疑惑可以回复我~

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

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("输入错误!");
    }
}
}

求采纳!

2 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信