【发布时间】:2014-05-12 12:22:19
【问题描述】:
我一直尝试(多次)将 +1 添加到已经在一个数组中的一个数字(数字为零),但它不工作。
int i=0;//var for arrays
int [] countArray = new int[10];
/////////////////////
//__________ ask for values --------------
System.out.println("Hello please enter the number you would" +
" like to be sorted separated by commas. \n" +
"Example: \" 2,3,5,83,2 \".\t only use" +
" commas. to separate numbers\n");
//----------- save values -----
Scanner scan = new Scanner(System.in);
String allInput = scan.nextLine();//single string object with all input
String [] arr = allInput.split(",");//string array that holds all values
//as String
int [] numbersArray =new int[arr.length] ;//numbers
for ( String w: arr){//change Strings to Int
numbersArray[i]= Integer.valueOf(arr[i]);
i++;
}
//__必要时将计数中的所有数字设置为零
i=0;
for ( int x: countArray){//set all numbers to zero
countArray[i]=0;
i++;
} //everything zeroed
i=0;
现在可以了,谢谢大家:
for (int x = 0; x < numbersArray.length; x++){
if (numbersArray[x] >=10 && numbersArray[x] <=100) {
countArray[(numbersArray[x]-1)/10]++;}
else{
if (numbersArray[x] >=0 && numbersArray[x] <=10)
{
countArray[1 -1]++;}
}
}
【问题讨论】:
-
一些系统操作系统和调试会有所帮助。
-
将每个
for循环更改为简单的for (int i=0; i<xxx.length; i++)。这样做没有任何好处,只会让代码更难阅读。 -
另外,在最后一个
for循环中,您可以简单地计算一些int index = (numbersArray[i]-1)/10,并在验证它在 0 和 9 之间后,将其与countArray[index]++一起使用。