JAVA从键盘中输入20个整数将奇数和偶数存入不同的两个数组中 计算这两个数组中所有数据之和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA从键盘中输入20个整数将奇数和偶数存入不同的两个数组中 计算这两个数组中所有数据之和相关的知识,希望对你有一定的参考价值。

我的代码是
package study;

import java.util.*;

public class HelloWorld

public static void main(String[] args)

Scanner input=new Scanner(System.in);
System.out.println("输入20个整数");
int a[];
a=new int[20];
int b[];
b=new int[20];
for(int i=0;i<20;i++)

int x=input.nextInt();
if(x%2==0)

x=a[i];
else

x=b[i];

System.out.println("加起来一共"+(a[20]+b[20]));




但是为啥 我输入了20个数字 得出来的是
输入20个整数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 20
at study.HelloWorld.main(HelloWorld.java:25)
。。 求高手解答 我究竟错哪了
。。。20改 19了。。。。但是为什么我最后答案是0。。

System.out.println("加起来一共"+(a[20]+b[20]));
你数组总共是20个元素,最多只能是a[19] 
20肯定会显示数组超出

追问

。。为什么我答案还是0。。。 我错哪了

追答import java.util.*;
 
public class HelloWorld 
 
    public static void main(String[] args) 
    
      Scanner input=new Scanner(System.in);
     System.out.println("输入20个整数");
     int a[];
     a=new int[20];
     int b[];
     b=new int[20];
     for(int i=0;i<20;i++)
    
       int x=input.nextInt();
     if(x%2==0)
    
     a[i]=x;
     else
    
     b[i]=x;
    
     System.out.println("加起来一共"+(a[i]+b[i]));
    

    

参考技术A System.out.println("加起来一共"+(a[20]+b[20]));

应该是这句报错了,a[20] b[20]的数组越界了,应该是a[19] b[19]追问

。。为什么我答案还是0。。。 我错哪了

参考技术B

    数组下标是以0开始的,,只有a[19],没有a[20]!

    程序写出来的不是题目要求的。还不如用个list存储,然后把list转array

追问

。。。为啥我答案出来是0 。。 你那个什么list 我们还没学。。。没见过。。。

追答

 我写的代码:

package cn.zhidao.file;
/**
 * @author x373241884y
 * @time 2015-4-4 下午4:18:35
 */
import java.util.*;
public class HelloWorld 
 public static void main(String[] args) 
  Scanner sc = new Scanner(System.in);
  System.out.println("输入一行整数,以空格隔开,回车确认:");
  String str = sc.nextLine();
  String[] str_array = str.split(" ");
  int[] array = new int[str_array.length];
  for (int i = 0; i < array.length; i++) 
   array[i] = Integer.parseInt(str_array[i]);
  
  List<Integer> list1 = new ArrayList();
  List<Integer> list2 = new ArrayList();
  int sum1 = 0;
  int sum2 = 0;
  for (int i = 0; i < array.length; i++) 
   if (array[i] % 2 == 0) 
    list1.add(array[i]); // 偶数
    else 
    list2.add(array[i]); // 奇数
   
  
  for (Integer temp : list1) 
   sum1 += temp;
  
  System.out.println();
  for (Integer temp : list2) 
   sum2 += temp;
  
  System.out.println("所有偶数和:" + sum1);
  System.out.println("所有奇数和:" + sum2);
  System.out.println("加起来一共" + (sum1 + sum2));
 

以上是关于JAVA从键盘中输入20个整数将奇数和偶数存入不同的两个数组中 计算这两个数组中所有数据之和的主要内容,如果未能解决你的问题,请参考以下文章

vb实验 随机数中求奇偶数和素数并进行排序

设计一程序,通过键盘输入十个整数到数组中,找出其中最大的偶数和最大的奇数 ,,(用C++只是解答)

读入一组整数到数组中,设计一程序,找出最大偶数和最大奇数并输出

编写一个程序,判断任意输入的整数的奇偶性。

c语言 从键盘输入正整数m和n,将m到n之间的所有素数存入数组s中,并将s中元素5个一行输出。

java定义一个整数数组,求出其中的奇数和偶数个数。我是初学者,求代码和步骤解释,一定好评