我的代码应该提示用户输入一个整数并计算该整数中每个数字的出现次数。但它什么也没输出。请帮忙,这是我的代码。
import java.util.Scanner;
public class NumberCounts {
public static void main(String [] args) {
Scanner scan = new Scanner(System.in);
int arr [] = new int [10];
int num;
int outcome;
System.out.println(" Enter a number: ");
num = scan.nextInt();
while ( num != 0){
outcome = num % 10;
arr[num % 10]+=1;
num /= num;
}
for ( int i = 0; i <= arr.length; i++){
System.out.println(i + " : " + arr[i]);
}
}
}
最佳答案
在你的 while
里面循环,你正在除num
本身,然后将结果分配回 num
。这将使 num
等于 1
永远。将其更改为
num /= 10;
这将删除最后一位数字。
此外,您已经计算了最后一位数字并将结果存储在 outcome
中。您不妨使用它:
arr[outcome]+=1;
然后,当您进入循环打印数组时,在条件下,始终使用 <
处理最后一个索引后停止的数组长度 length - 1
。这将防止ArrayIndexOutOfBoundsException
正在等待出现。
for (int i = 0; i < arr.length; i++){
关于java - 计算整数的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50476664/