所以我在java中创建一个程序,你输入分数,然后把它们分成十分位数(0-9,10-19,20-29,... 80-89,90-100),我就是掌握了程序应该如何工作,但我缺少一个关键要素。我创建了一个包含10个元素的数组(每个十进制范围一个)。一旦用户输入他们的分数,它除以10,然后需要将分数放入阵列中的适当位置,但这就是我迷失的地方。之后它必须做很多事情,我理解但是当有人进入55以将数组的50-59部分增加1时我该如何告诉代码呢?
答案 0 :(得分:2)
bucketedScores[score / 10]++;
你不是吗?或者可能更清楚:
bucketedScores[score / 10] = roughScores[score / 10] + 1;
答案 1 :(得分:1)
int index = value / 10;
myArray[index] += 1;
仅供参考,根据您的说法,您将得到一个得分为100的IndexOutOfBoundsException。可能需要处理。
答案 2 :(得分:0)
由于范围是从0到101的101个值,因此除了除以10之外,还需要做更多的操作。
你的意思是?
int[] scores = new int[10];
int decile = ...
int score = ....
scores[Math.min(9, decile/10)] += score;
这确保100被映射到9.另一个解决方案是使用(int)(decile/10.1)
将{0}映射到第一个十分位数。
答案 3 :(得分:0)
以这种方式试试....
bucketedScores[score / 10] = roughScores[score / 10] + 1;
答案 4 :(得分:0)
听起来像
int[] myarray = new int[10];
// Divide and increase the number returned (like 84/10 = 8 in integer division)
myarray[num/10]++
虽然100会把它扔掉,但你需要一个特殊情况。
答案 5 :(得分:0)
根据问题 进入循环说例如,我希望你将100个值分成10-10个。使用for循环并通过为每次输入迭代将输入分配给临时变量来检查和分类。
for(int i=0; i<=100; i++)
{
if(a[i] >= 0 && a[i] < 10)
your desired o/p(execution)
else if(a[i] > 10 && a[i] < 20)
your desired o/p(execution)
}