【发布时间】:2013-11-24 15:26:57
【问题描述】:
这是我的程序。我不知道我在哪里除以零,所以我无法修复这个错误。
Exception in thread "main" java.lang.ArithmeticException: / by zero
这个程序应该反转任何数字的数字。 前任。 57823 --> 32875 我无法让它工作。
import acm.program.*;
public class ReverseDigits extends Program {
public void run(){
println("This program reverses the digits in an integer.");
int n = readInt("Enter a positive integer: ");
int x = 10;
int t = 1;
double total = 0;
//Finds the number of digits
while (n > 0){
while (n % x != 0) {
t = t + 1;
x = x * 10;
}
}
//In case the number has one digit the new number is the same
if(t == 1) {
total = n;
}
//Creating the new number
while (t > 1) {
t=t-1;
total = (total + ((( n / (Math.pow(10, t))) - ((n / (Math.pow(10, (t+1)))) * 10 )) * 10));
}
println("The reverse number is " + total);
}
}
【问题讨论】:
-
你看过异常堆栈跟踪吗?它准确地告诉您是哪一行代码导致了异常!见stackoverflow.com/questions/3988788/…
-
而且,此代码与反转数字无关。为此,您只需要一个 for 和 temp 字符串。大概只有 3 行代码。
-
重新安排你的 while 循环逻辑。
-
告诉我们哪一行引发了异常。
标签: java exception zero divide