请问错误出在哪里?谢谢

请问错误出在哪里?谢谢

int a,b,c;              //定义变量a、b、c,用于存放个位、十位、百位上的数字

int x=0;               //x代表三位数的积,初始值设为0   

int sum=0;          //sum代表和,初始值也设为0        

for(c=2,b=0,a=0; c<3; b++,a++){

      System.out.println(c);    //取出百位数

      System.out.println(b);    //取出十位数

      System.out.println(a);    //取出个位数

      x=a*b*c;          //计算三个数字之积

      sum=a+b+c;   //计算三个数字之和

      if(x==42&sum==12){

      System.out.println(c+b+a);     //如果积等于42并且和为12,则将满足条件的数输出

       }

}


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你好,我把你的代码调整了一下:

int ge, shi, bai, n;
int sum, mul;// 定义变量ge、shi、bai,用于存放个位、十位、百位上的数字
for (n = 200; n < 300; n++)// 使用for循环
{
bai = n / 100;// 取出百位数
shi = (n / 10) % 10;// 取出十位数
ge = n % 10;// 取出个位数
mul = bai * shi * ge;// 计算三个数字之积
sum = bai + shi + ge;// 计算三个数字之和
if (mul == 42 & sum == 12) {
System.out.println(n);
}
}

输出应该是n,如果是System.out.println(bai+shi+ge)这样,就是输出个十百位数字的和了。

祝学习愉快~

  • KABOKUO 提问者 #1
    非常感谢!
    2017-10-19 11:28:15
好帮手慕珊 2017-10-18 18:36:45

你好!循环条件是c<3,但是在循环中并没有改变c的值,所以c<3的条件一直满足,就成死循环了,在if语句下面添加一个c++就可以了。

不过你这么做还是不能满足题目要求,题目是要求从200到300的数中去查找,所以循环条件可以是循环变量小于300,初始值是200,然后循环变量++。在循环中分别取出个位、十位和百位上的数。然后再进行判断。建议再改改

祝学习愉快!

  • 提问者 KABOKUO #1
    谢谢老师解答。看了其他学员的作业,发现我解题的思路就不对,连出题的意向都理解错了,现在就是教程能看明白,但是后面的测试就是不会做
    2017-10-18 19:37:40
  • 提问者 KABOKUO #2
    这是修改过的,但是依然不对,请指出错误,谢谢。 int ge,shi,bai,n; int sum,mul;//定义变量ge、shi、bai,用于存放个位、十位、百位上的数字 for(n=200;n<300;n++)//使用for循环 { bai=n/100;//取出百位数 shi=(n/10)%10;//取出十位数 ge=n%10;//取出个位数 mul=bai*shi*ge;//计算三个数字之积 sum=bai+shi+ge;//计算三个数字之和 if(mul==42&sum==12){ System.out.println(bai+shi+ge); }
    2017-10-18 20:04:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师