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

我的代码是packagestudy;importjava.util.*;publicclassHelloWorld{publicstaticvoidmain(String... 我的代码是
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。。
展开
 我来答
neuqliyang
2015-04-04 · TA获得超过208个赞
知道小有建树答主
回答量:399
采纳率:100%
帮助的人:317万
展开全部
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]));
     }

    }
}
12yu_chao
2015-04-04 · 超过23用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:30万
展开全部
System.out.println("加起来一共"+(a[20]+b[20]));

应该是这句报错了,a[20] b[20]的数组越界了,应该是a[19] b[19]
追问
。。为什么我答案还是0。。。 我错哪了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巫难天地难m
2015-04-04 · TA获得超过263个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:135万
展开全部
  1. 数组下标是以0开始的,,只有a[19],没有a[20]!

  2. 程序写出来的不是题目要求的。还不如用个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));
 }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式