繁体   English   中英

java将值分配给数组

[英]java assigning values to an array

所以我正在用Java创建一个程序,在其中输入分数并将其分类为十分位数(0-9、10-19、20-29,... 80-89、90-100),我已经掌握了关于程序应该如何工作的信息,但是我缺少一个关键要素。 我创建了一个包含10个元素的数组(每个十分位范围一个)。 一旦用户输入了分数,它就会除以10,然后需要将分数放入数组中的适当位置,但这就是我迷失的地方。 在那之后,它必须做一堆事情,据我所知,但是当有人输入55将数组的50-59部分增加1时,我该如何告诉代码呢?

嗯,听起来您只想要:

bucketedScores[score / 10]++;

是不是 或更清晰:

bucketedScores[score / 10] = roughScores[score / 10] + 1;
int index = value / 10;
myArray[index] += 1;

仅供参考,按照您所说的,您将获得一个IndexOutOfBoundsException分数为100。可能需要处理。

由于范围是从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到10映射到第一个十分位。

这样尝试。

bucketedScores[score / 10] = roughScores[score / 10] + 1;

听起来好像

int[] myarray = new int[10];
 // Divide and increase the number returned (like 84/10 = 8 in integer division)
myarray[num/10]++

尽管100可以解决这个问题,但是您需要为它准备一个特殊情况。

根据问题进入循环,例如,我希望您将100个值除以10-10。 通过将输入分配给输入的每次迭代的临时变量,用于循环并对其进行检查和分类。

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)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM