总和1,2,3 ...两个循环

时间:2015-11-03 13:18:53

标签: java

我有第二个循环的数据。

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

感谢。

5 个答案:

答案 0 :(得分:1)

你的问题不清楚。我不明白为什么你在11的多个位置设置为0。 这是我理解的解决方案。

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

答案 1 :(得分:0)

由于您从2个具有相同索引的数组中减去项目,因此您不能使用for循环并只保留运行总计。

PageTemplate

答案 2 :(得分: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);

答案 3 :(得分:0)

您需要一个变量来保存数组的总和。

如果你想获得两个数组的总和,你可以这样做:

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

此外,所有变量都应该是小写的,因为它们不是Classes。

答案 4 :(得分: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];
 }