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。。 展开
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。。 展开
3个回答
展开全部
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]));
}
}
}
展开全部
System.out.println("加起来一共"+(a[20]+b[20]));
应该是这句报错了,a[20] b[20]的数组越界了,应该是a[19] b[19]
应该是这句报错了,a[20] b[20]的数组越界了,应该是a[19] b[19]
追问
。。为什么我答案还是0。。。 我错哪了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组下标是以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));
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询