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错误的答案所以你能帮帮我吗?
答案 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;并且要添加这些内容以获取108
和260
。
所以你需要读取第一个数字,然后是第二个数字,添加它们并将它们存储在你的(一个)数组中;然后读取下一个第三个数字,第四个,将它们加在一起并存储起来;然后输出结果。
答案 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 + " ");
}