如何添加两个1-d数组并使用for循环进行排列?

时间:2015-07-27 12:03:55

标签: java

用户应为list1输入10个整数值,为list2输入10个整数值。您的程序应该添加list1和list2的内容,然后将总和存储到list3。您的程序应水平显示list1,list2和list3的值。使用循环。

这是输出:

List1 : 1 3 2 5 7 8 5 6 9 4
List2 : 2 1 4 3 2 1 4 2 0 2
List3 : 3 4 6 8 9 9 9 8 9 6

这是我的代码

import java.io.*;
public class List {
    public static void main(String[] args) {
        int list1[] = new int[10];
        int list2[] = new int[10];
        int i, j, k, num = 0, num1 = 0, num2 = 0;
        String input = " ";
        BufferedReader in = new BufferedReader(new
        InputStreamReader(System. in ));
        for (i = 0; i < 10; i++) {
            list1[i] = 0;
        }
        for (j = 0; j < 10; j++) {
            list2[j] = 0;
        }
        try {
            for (i = 0; i < 10; i++) {
                System.out.print("Input value for list[" + i + "] = ");
                input = in .readLine();
                num = Integer.parseInt(input);
                list1[i] = num;
            }
            for (j = 0; j < 10; j++) {
                System.out.print("Input value for list[" + j + "] = ");
                input = in .readLine();
                num1 = Integer.parseInt(input);
                list2[j] = num1;
            }
        } catch (IOException e) {}
        System.out.print("list1: ");
        for (i = 0; i < 10; i++) {
            System.out.print(list1[i] + "\t");
        }
        System.out.println();
        System.out.print("list2: ");
        for (j = 0; j < 10; j++) {
            System.out.print(list2[j] + "\t");
        }
        System.out.println();
        int list3[] = new int[10];
        list3[0] = list1[0] + list2[0];
        list3[1] = list1[1] + list2[1];
        list3[2] = list1[2] + list2[2];
        list3[3] = list1[3] + list2[3];
        list3[4] = list1[4] + list2[4];
        list3[5] = list1[5] + list2[5];
        list3[6] = list1[6] + list2[6];
        list3[7] = list1[7] + list2[7];
        list3[8] = list1[8] + list2[8];
        list3[9] = list1[9] + list2[9];
        System.out.print("list3: ");
        for (k = 0; k < 10; k++) {
            System.out.print(list3[k] + "\t");
        }
    }
}

我的程序工作正常但是我需要将第三个列表放在循环中你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

代替在代码中使用顺序添加...

list3[0] = list1[0] + list2[0];
list3[1] = list1[1] + list2[1];
list3[2] = list1[2] + list2[2];
list3[3] = list1[3] + list2[3];
list3[4] = list1[4] + list2[4];
list3[5] = list1[5] + list2[5];
list3[6] = list1[6] + list2[6];
list3[7] = list1[7] + list2[7];
list3[8] = list1[8] + list2[8];
list3[9] = list1[9] + list2[9];

使用此for()循环

for (int l = 0; l < list3.length; l++) {
    list3[l] = list1[l] + list2[l]; 
}

答案 1 :(得分:0)

你接收值的前两个for循环很好,现在你需要的是一个for循环,它做了这样的事情:

for(int i = 0, int length = list1.lengthl; i < length; i++)
{
   //add the stuff indexes by doing list1[i]+list2[i]
   //make sure to assign it to a new array
}

编辑:如果想知道为什么我使用变量来存储长度,那是因为常规循环通常是O(n)[big-oh]这意味着完成所需的时间与循环的大小成正比是(也就是说,100次迭代将超过10次,它的斜率为1)。但是,如果我们要做我