您将获得相同的价值,
even并且
odd因为您正在打印相同的价值:-
System.out.print("Sum of odd elements: " + evenSum);
此外,您的最后一笔是
zero因为你在做你原有的数组的所有元素
zero,因为你是在要素交换的元素
evenData和
oddData,这是初始值为0。
int temp = data[index];data[index] = evenData[index]; // This pre assigns a value 0 to current index.evenData[index] = temp;
因此,您要迭代数组,并分配
0给每个索引,同时将上一个元素添加到中
new array。
我会说,您不必要地使用了2个额外的数组和3个额外的循环。为什么不只是在迭代原始数组的地方创建一个和?
实际上,所有的总和都可以在一个循环中计算:-
for(int index = 0; index < data.length; index++){ sum += data[index]; if (data[index] % 2 == 0) { // int temp = data[index]; // data[index] = evenData[index]; // evenData[index] = temp; evenSum += data[index]; } else { // int temp = data[index]; // data[index] = oddData[index]; // oddData[index] = temp; oddSum += data[index]; } }System.out.println("Even Sum: " + evenSum);System.out.println("Odd Sum: " + oddSum);System.out.println("Total Sum: " + sum);
因此,您无需为
even和
odd数字创建额外的数组。
而且,您
4 loops现在也已被压缩为一个循环。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)