请问错误出在哪里?谢谢

来源:4-7 编程练习

KABOKUO

2017-10-18 18:08:03

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回答

一叶知秋519

2017-10-19

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

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)这样,就是输出个十百位数字的和了。

祝学习愉快~

0
hABOKUO
h 非常感谢!
h017-10-19
共1条回复

好帮手慕珊

2017-10-18

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

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

祝学习愉快!

0
hABOKUO
h 这是修改过的,但是依然不对,请指出错误,谢谢。 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); }
h017-10-18
共2条回复

0 学习 · 14452 问题

查看课程