编写一个读取3个整数的程序并打印出它们的舍入值之和。如果最右边的数字是5或更多,我们将每个值四舍五入到10的下一个倍数,所以15轮最多20个。或者,如果最右边的数字小于5,则向下舍入到前一个10的倍数,因此12轮向下舍入到10。
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int x = scan.nextInt();
int y = scan.nextInt();
int z = scan.nextInt();
int a = x%10;
int b = y%10;
int c = z%10;
int sum = 0;
if(a >= 5)
a = 10;
else
a = 0;
if(b >= 5)
b = 10;
else
b = 0;
if(c >= 5)
c = 10;
else
c = 0;
sum = x+y+z;
System.out.println(sum);
}
我知道这是错的,但我不知道如何纠正它。请帮忙!
答案 0 :(得分:1)
您需要将x
,y
和z
舍入为10
的倍数。您的模数分别为a
,b
和c
。如果模数小于5
,则可以减去它。如果模数大于或等于5
,则需要将模数和十的差值与原始数字相加。所以你需要像(x
,y
和z
),
if (a >= 5) {
x += 10 - a;
} else {
x -= a;
}
你可以表达为像
这样的三元组x += (a >= 5) ? 10 - a : -a;
y += (b >= 5) ? 10 - b : -b;
z += (c >= 5) ? 10 - c : -c;
答案 1 :(得分:0)
您不应该修改a
,b
,{{1},而不是修改c
,x
和y
的值。 }?例如:
z
答案 2 :(得分:0)
更改两行:
int sum = x - a + y - b + z - c;
和
sum += a + b + c;
第一个将x,y,z减去整数位。第二个添加将整数位四舍五入为0或10的值。