2015-11-03 83 views
-1

我有一個來自循環二的數據。總計1,2,3 ...兩個循環

Tsum2 : [ 19 12 17 10 6 0 10... ] 
Isum2 : [ 98 33 26 11 15 10 32... ] 

,我想價值Tsum2Isum2

sum = [ (19-98)+(12-33)+(17-26)+ ... +(10-32)... ] 

總和我該怎麼辦?從該代碼

此代碼實施例

for (int d1 = 0; d1 < 360; d1++) { 
    Tsum10 = Tsum10 + (int) degreeT[d1];     
    Tcount10++; 
    if (Tcount10 == 10) { 
     Tsum2 = (Tsum10 + (int) degreeT[d1]);     
     Tcount10 = 0; 
     Tsum10 = 0;   
    } 
} 

for (int d2 = 0; d2 < 360; d2++) { 
    Isum10 = Isum10 + (int)degreeI[d2];     
    Icount10++; 
    if (Icount10 == 10) { 
     Isum2 = (Isum10 + (int)degreeI[d2]); 
     Icount10 = 0; 
     Isum10 = 0;   
    } 
} 

結果。

循環D1:

19 12 17 10 6 0 10 21 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 31 7 13 9 16 8 8 13 16 

環D2:

98 33 26 11 15 10 32 44 87 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 112 50 14 25 32 16 32 39 97 

謝謝。

+0

如果我明白你具有兩個陣列: Tsum2:[19 12 17]和 Isum2:[98 33 26]相同的長度的,那麼您想要的總和= -109 – Shivam

+0

作爲旁註,你應該堅持命名變量的命名約定(以小寫開頭),否則會混淆,因爲以大寫開頭的單詞通常指定一個類。 – SomeJavaGuy

回答

1

你的問題不清楚。我不明白你爲什麼設置爲0的多個位置的每個值爲11. 這是我所理解的解決方案。

int total = 0; 
for (int i = 0; i < Tsum2.length; i++) { 
    total += Tsum2[i] - Isum2[i] 
} 
+1

如果'Tsum2'和'Isum2'具有相同數量的元素,這將工作。如果'Isum2 []'具有[更少元素](https://docs.oracle.com/javase/7/docs/api/java/lang/ArrayIndexOutOfBoundsException.html)而不是'Tsum1'。 – sam

+1

@sam:然後OP需要指定應該發生什麼,因爲這打破了問題中的規範。 – Keppil

+0

我寫了這段代碼,因爲我看到每個數組的從0到359的JJR KTS循環。如果他們有不同的長度,他可以檢查更小和迭代的長度,然後簡單地添加(或減去)其他長度。對不起,我的英語壞xD – fattidare

0

由於您正在從2個數組中減去具有相同索引的項目,因此您可以不使用for循環並只保留一個運行總數。

int sum=0; 
for (int x = 0; x < Tsum1.length; x++) { 
    sum= sum+ (Tsum2[x] - Isum2[x]); 
} 
+0

你可以使用sum + =而不是sum = sum +;) – fattidare

+0

是的,我只是覺得這將是更容易理解這種方式的人問這個問題,但謝謝:D –

0

這個解決方案應該是工作無論在數組中有平等的大小與否,並防止ArrayOutOfBoundException

int[] tsum2 = { 19, 12, 17, 10, 6, 0, 10}; 
int[] isum2 = { 98, 33, 26, 11, 15, 10, 32}; 
int total = 0; 
for (int i = 0; i < tsum2.length || i < isum2.length; i++) { 
    int val1 = i < tsum2.length ? tsum2[i] : 0; 
    int val2 = i < isum2.length ? isum2[i] : 0; 
    total += val1 - val2; 
} 
System.out.println(total); 
0

您需要一個變量來保存數組的總和。

如果你想獲得兩個數組的總和,你不喜歡它:

int sum = 0; 
for(int i = 0; i < tsum2.length; i++) 
{ 
    sum = sum + (array1[i] - array2[i]); 
} 

而且,所有的變量都應該是小寫,因爲它們不是類。

0

嘗試了這一點男人:

const int n = 6; 
int[] a = { 19, 20, 21, 22, 23, 24 }; 
int[] b = { 1, 2, 3, 4, 5, 6 }; 
int d =0; 
for (int i = 0; i < a.Length; i++) 
{ 
    d += a[i] - b[i]; 
} 
+0

這不會編譯。請注意,這不是一個C#問題(看起來像C#代碼)。 – Tom

+0

是的,它是c#。 wats der因爲他會至少得到一個想法如何做na .. :) –