我需要帮助(Sums In Loops)

时间:2017-08-01 14:23:43

标签: java

Hello Guys我只是需要帮助这是我想要解决的问题:

  

输入数据将包含要处理的对的总数   第一行。

     

以下行将自己包含对 - 每对包含一对   线。

     

答案应包含以空格分隔的结果。

示例:

data:
3
100 8
15 245
1945 54

answer:
108 260 1999

我写代码,这里是

public class SumsInLoopAdvanced {

    public static void main(String[] args) {

        Scanner reader = new Scanner(System.in);
        int num = reader.nextInt();
        int a =0;
        int arr [] = new int[250];
        for (int i = 0; i < num; i++) {
            arr[i] = reader.nextInt();
        }

        for (int j = 0; j < num; j++) {
            arr[j] = reader.nextInt();
        }

        for (int i = 0; i < num; i++) {
            for (int j = 0; j < num; j++) {
                a = arr[j]+arr[i];
            }
            System.out.print("Answer: \n" + a);            
        }      
    }

}

它只是245 + 15错误的答案所以你能帮帮我吗?

3 个答案:

答案 0 :(得分:0)

你的代码在这里打破了:

    for (int j = 0; j < num; j++) {
        arr[j] = reader.nextInt();
    }

因为你要覆盖之前填充的数组:arr[i]

    int arr [] = new int[250];
    for (int i = 0; i < num; i++) {
        arr[i] = reader.nextInt();
    }

答案 1 :(得分:0)

您在第二次循环中覆盖了arr中的值。

如果要收集两组值,则需要两个数组。 (好吧,不是需要,但这是合理的方式。)另请注意,您最后不需要或想要嵌套循环;只需将第一个数组中的i条目添加到第二个数组的i条目中。

旁注:代替数组上的硬编码上限(250),使用num,因此您知道它总是足够大(例如,如果我告诉你我&#39 ;我要输入300个数字,你的代码会爆炸)。 int[] arr = new int[num];

但是,既然问题引用了您尝试解决的问题,请注意您的代码想要读取一堆值,然后在第二组值中读取,然后将它们一起添加。作业说你会输入像&#34; 100 8&#34;然后&#34; 15 245&#34;并且要添加这些内容以获取108260

所以你需要读取第一个数字,然后是第二个数字,添加它们并将它们存储在你的(一个)数组中;然后读取下一个第三个数字,第四个,将它们加在一起并存储起来;然后输出结果。

答案 2 :(得分:0)

如果我做对了,你需要为每个索引打印两个数组条目的总和。 首先,您使用的是同一个数组,并且您将覆盖第二个循环在第一个循环中执行的所有操作。

int arr [] = new int[250];
    for (int i = 0; i < num; i++) {
        arr[i] = reader.nextInt();
    }

    for (int j = 0; j < num; j++) {
        //writing into the same array starting with 0 index
        arr[j] = reader.nextInt(); 
    }

如果我正确地进行了这项练习,你不需要嵌套循环,你需要从具有相同索引的不同数组中找到两个数组元素的总和。

类似的东西:

for (int i = 0; i < num; i++) {
       a = arr1[i] + arr2[i];
       System.out.print(a + " ");
      }