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

要JAVA数组的哦

你没有限制是int还是Integer? 而且是否可以用java.util.比如List? 考虑到对用户输入的校验,下面的代码还是用了Scanner,ArrayList及StringTokenizer,最后再把ArrayList转换到了array,然后按要求统计。

// 1447199934860093700
//import java.util.Scanner;
//import java.util.StringTokenizer;
import java.util.*;

public class OddEvenArrayStat
{
    public static void main (String[] args)
    {
        Scanner scan = new Scanner(System.in);
        final int size = 20;        
        List<Integer> a_odd = new ArrayList<Integer>();
        List<Integer> a_even = new ArrayList<Integer>();        
        
        System.out.println("Enter "+size+" numbers: ");
        int i = 0;
        while (i < size) {
            String line = scan.nextLine();
            StringTokenizer tokenizer = new StringTokenizer(line,", ;");
            while ( tokenizer.hasMoreTokens() ) {
                try {
                    String token = tokenizer.nextToken(); 
                    int val = Integer.parseInt(token);
                    if (val % 2 == 0) a_even.add(val);
                    else a_odd.add(val);
                    ++i;
                } catch (NumberFormatException nfe) {}
            }
        }

        int[] odd = new int[a_odd.size()];
        int[] even = new int[a_even.size()];
        i = 0;
        for (Iterator<Integer> it = a_odd.iterator(); it.hasNext(); odd[i++] = it.next()); 
        i = 0;    
        for (Iterator<Integer> it = a_even.iterator(); it.hasNext(); even[i++] = it.next()); 
        
        int sum_odd = 0, sum_even = 0;
        for (i = 0; i < odd.length; ++i ) sum_odd += odd[i];
        for (i = 0; i < even.length; ++i ) sum_even += even[i];
        
        System.out.println("Sum of odd is: " + sum_odd);
        System.out.println("Sum of even is: " + sum_even);        
    }
}

运行(运行用户任意输入,一行一个,或多个,只要有效的输入『20个整数』满足即可):

C:\>java OddEvenArrayStat
Enter 20 numbers:
2 4 6 8 1 3 5 7 0 a b c e ! _^
10 9 12 11 13 14 15 20 19 17
22
Sum of odd is: 100
Sum of even is: 98
温馨提示:答案为网友推荐,仅供参考