2016-11-23 7 views
2

Я изучаю java, и я пытаюсь заставить эту работу работать.Попытка сделать эти 2 массива хранить входную сумму в 3-м списке

Я сделал 3 массива в java, 2 из которых принимает вход, по 10 элементов каждый.

Сумма содержания list1 и list2 следует хранить в списке 3, и отображать результаты

Это мой код (на самом деле грязный, извините)

public class List2 { 
    public static void main(String[]args){ 
    int list1[]=new int[10]; 
    int list2[]=new int[10]; 
    int list3[]=new int[10]; 
    int i, sum=0, num1=0, num2=0; 
    String input=" "; 

    BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); 

    for(i=0;i<10;i++){ 
      list1[i]=0; 
      list2[i]=0; 
      list3[i]=0; 
     } 
    for(i=0;i<10;i++){ 
      System.out.print("Input value for list1[" + i + "] = "); 

      try{ 
       input=in.readLine(); 
      }catch(IOException e){} 
      num1=Integer.parseInt(input); 
      list1[i]=num1; 
      } 

    for(i=0;i<10;i++){ 
      System.out.println("list[" + i + "] = "+list1[i]); 
    } 
    for(i=0;i<10;i++){ 
      System.out.print("Input value for list2[" + i + "] = "); 

      try{ 
       input=in.readLine(); 
      }catch(IOException e){} 
      num2=Integer.parseInt(input); 
      list2[i]=num2; 
      } 
    for(i=0;i<10;i++){ 
      System.out.println("list[" + i + "] = "+list2[i]); 
    }  
    for(i=0;i<10;i++){ 
     sum = list1[i]+list2[i]; 
    } 
    for(i=0;i<10;i++){ 
     System.out.println("list3[" + sum + "]="+"list1[" + list1[i] + "]+"+"list2[" + list2[i] + "]"); 
    } 
    } 
} 

К моему ужасу, только последний вход list1 и list2 отображается во всем списке3. Это результаты

**Input value for list1[0] = 1 
Input value for list1[1] = 2 
Input value for list1[2] = 3 
Input value for list1[3] = 4 
Input value for list1[4] = 1 
Input value for list1[5] = 2 
Input value for list1[6] = 3 
Input value for list1[7] = 1 
Input value for list1[8] = 41 
Input value for list1[9] = 2 
list[0] = 1 
list[1] = 2 
list[2] = 3 
list[3] = 4 
list[4] = 1 
list[5] = 2 
list[6] = 3 
list[7] = 1 
list[8] = 41 
list[9] = 2 
Input value for list2[0] = 4 
Input value for list2[1] = 1 
Input value for list2[2] = 2 
Input value for list2[3] = 1 
Input value for list2[4] = 1 
Input value for list2[5] = 3 
Input value for list2[6] = 1 
Input value for list2[7] = 1 
Input value for list2[8] = 1 
Input value for list2[9] = 1 
list[0] = 4 
list[1] = 1 
list[2] = 2 
list[3] = 1 
list[4] = 1 
list[5] = 3 
list[6] = 1 
list[7] = 1 
list[8] = 1 
list[9] = 1 
list3[3]=list1[1]+list2[4] 
list3[3]=list1[2]+list2[1] 
list3[3]=list1[3]+list2[2] 
list3[3]=list1[4]+list2[1] 
list3[3]=list1[1]+list2[1] 
list3[3]=list1[2]+list2[3] 
list3[3]=list1[3]+list2[1] 
list3[3]=list1[1]+list2[1] 
list3[3]=list1[41]+list2[1] 
list3[3]=list1[2]+list2[1] 

У кого-нибудь есть идея, что я должен сделать, чтобы он работал правильно?

+0

Подсказка: Проверьте эту строку 'сумма = list1 [я] + песни2 [я];' – PsyGik

+0

ооо! Спасибо! Я думал, что должен был использовать сумму. благодаря! – lkcs26

ответ

1

Вам нужно добавить значения для каждого индекса и поместить их обратно в список3.

for (int i = 0; i < 10; i++) { 
     list3[i] = list1[i] + list2[i]; 
    } 
+0

ooh! Спасибо! Я думал, что должен был использовать сумму. благодаря! – lkcs26

0

я думаю, что это то, что и хотят достичь ..

import java.util.*; 
import java.io.*; 
public class fib{ 
    public static void main(String[]args){ 
    int list1[]=new int[10]; 
    int list2[]=new int[10]; 
    int list3[]=new int[10]; 
    int i, sum=0, num1=0, num2=0; 
    String input=" "; 

    BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); 

    for(i=0;i<10;i++){ 
      list1[i]=0; 
      list2[i]=0; 
      list3[i]=0; 
     } 
    for(i=0;i<10;i++){ 
      System.out.print("Input value for list1[" + i + "] = "); 

      try{ 
       input=in.readLine(); 
      }catch(IOException e){} 
      num1=Integer.parseInt(input); 
      list1[i]=num1; 
      } 

    for(i=0;i<10;i++){ 
      System.out.println("list[" + i + "] = "+list1[i]); 
    } 
    for(i=0;i<10;i++){ 
      System.out.print("Input value for list2[" + i + "] = "); 

      try{ 
       input=in.readLine(); 
      }catch(IOException e){} 
      num2=Integer.parseInt(input); 
      list2[i]=num2; 
      } 
    for(i=0;i<10;i++){ 
      System.out.println("list[" + i + "] = "+list2[i]); 
    }  
    for(i=0;i<10;i++){ 
     System.out.println(list1[i]+list2[i] + "="+"list1[" + list1[i] + "]+"+"list2[" + list2[i] + "]"); 
    } 
    } 
} 
0

'Сумма' не является массивом. Просто переменная для хранения одного значения. Вы добавляете каждый элемент списка 1 и список 2, но заменяете в переменной «sum». Вместо того, чтобы либо сделать сумма массив или использовать список 3, чтобы хранить все 10 значений

int sum[] = new int[10]; 
sum[i] = list1[i] + list2[i]; 

или

list3[i] = list1[i] + list2[i]; 
+0

Благодарим вас за объяснение этого! Мне нужно больше узнать об этих вещах, а не обманывать их. еще раз спасибо! – lkcs26

0

Вы добавили list1 и List2 и сохранили его в сумме, но где вы храните эту сумму в списке3? Вы должны хранить сумму двух списков в третьем списке, как это:

for(i=0;i<10;i++){ 
    list3[i] = list1[i]+list2[i]; 
} 

Тогда в конечном Println заявлении я не совсем уверен, что вы пытаетесь показать. Для того, чтобы показать содержимое просто повторить песни3 то, что вы делали раньше:

for(i=0;i<10;i++){ 
      System.out.println("list[" + i + "] = "+list3[i]); 
    } 
+0

Благодарим вас за разработку, улучшите эффективность :) – lkcs26