我正在做一个数组练习,我差点完成它。我无法完成最后一部分。我创建了两个数组,用于存储课程点和考试点,然后使用第三个数组我计算模块结果(由下面确定)考试和课程要点)。我得到了这个部分工作,并假设我有5个模块,输出是5个数字。但是我想计算我的舞台标记,所以如果我有5个模块我得到他们的标记,将它们加在一起然后将它们除以5.这是我的问题我正在使用for循环,因为这是唯一可行的方法(据我所知)所以鉴于我已经有了我的模块结果,我使用这个for循环来计算阶段结果:
for(int i = 0; i < module_result.length; i++)
{
sum = sum + module_result[i];
System.out.println(sum/5);
}
我在这个网站上看到了类似的问题,我在答案中使用了代码。我也可以使用增强的for循环。
因此,考虑到课程作业array={45,70,60,55,80}
和考试array={83,72,45,25,89}
,我的模块结果为64,71,60,87
。通过使用上面的for循环,我得到了预期的结果:
10
22
32
37
52
所以我得到了我的结果。它是52.但我不想要剩下的数字。 我的问题是如何才能获得这个数字(52)。我想通过使用for循环是不可能的,因为它将不可避免地循环5次而不是循环。我想过使用while循环,但我不知道如何得到更多不同的结果。
答案 0 :(得分:1)
我不确定我是否完全理解这个问题,但我认为这就是你想要的:
for(int i = 0; i < module_result.length; i++)
{
sum = sum + module_result[i];
}
System.out.println(sum/5);
您所要做的就是将println语句移到循环之外(如果我理解正确的话)。
答案 1 :(得分:0)
如果您只想打印出最后一个数字,只需在for循环中执行一个条件,该条件将在长度之前的索引处打印出来,如下所示:
for (int i = 0; i < module_result.length; i++) {
if (i == module_result.length - 1) {
// print results
}
else {
// Do calculations
}
}
好的,这是我的代码。
public int[] computeResult(int []courseWork,int[] examMarks ){
int[] module_result = new int[6];
for(int i=0;i<module_result.length;i++){//CALCULATE EACH MODULE
module_result[i]= ((courseWork[i] * cw[i]) + (examMarks[i] * (100 - cw[i]))) / 100;//THIS LINE IS SIMPLY A CONDITION HOW TO CALCULATE A MODULE YOU DON'T NEED TO KNOW WHAT IS HAPPENING INSIDE
}
int sum = 0;
for(int i = 0; i < module_result.length; i++)//USE THIS FOR LOOP TO ADD THE MODULES TOGETHER.
{
sum = sum + module_result[i];
// Add this extra line
// This allows you to only print out the value when you reach the end
if (i == module_result.length - 1) {
System.out.println(sum/6);
}
}
return module_result;
}
然而,这是发生的事情 - 第一个for循环计算模块结果。它们在输出控制台中如下所示: 64 71 60 31 87 33
接下来第二个for循环将它们加在一起 - 第一个是64,下一个循环在71到64,然后你得到135,接下来将135添加到下一个模块结果60,依此类推,直到我得到所有6个模块的总和这只是在这个例子346中,然后除以6得到我的舞台结果。所以我需要在我的输出控制台中只有346 / 6.没有其他没有零没有任何东西。
我当前的代码是做什么的 - 第二个循环星运行,它已经知道我的模块结果(它们已被计算)然后它开始 - 第一个是64,除以6我得到结果10,然后循环添加71到64得到135并将其除以6,依此类推,直到它达到数字346并除以6.因此我得到此输出: 10 22 32 37 52 57
我不需要10,22,32,37和52他们没有任何意义。我只需要57.你的解决方案给我的是这个结果: 0 0 0 0 0 57
它仍然提供不必要的数字。