2015-11-03 85 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 .. :) –