[英]Arrays and for loops trouble
我正在做一個數組練習,我幾乎完成了它。我在完成最后一部分時遇到了麻煩。我創建了兩個存儲課程作業點和考試點的數組,然后使用第三個數組來計算模塊結果(由考試和課程作業要點)。 我讓這部分正常工作,並假設我有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循環,但是我看不到如何獲得不同的結果。
我不確定我是否完全理解這個問題,但是我認為這是您要追求的目標:
for(int i = 0; i < module_result.length; i++)
{
sum = sum + module_result[i];
}
System.out.println(sum/5);
您所要做的只是將println語句移出循環(如果我正確理解了問題)。
如果您只想打印出最后一個數字,只需在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
它仍然給出不必要的數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.