偶数,奇数和负整数数组

时间:2014-04-17 02:56:43

标签: java arrays sorting

我需要:

编写一个以10个整数作为输入的程序。程序将偶数整数放入一个名为evenList的数组中,将奇数整数放入一个名为oddList的数组中,将负整数放入一个名为negativeList的数组中。在输入所有整数后,程序显示三个数组的内容。

import java.util.Arrays;
import java.util.Scanner;

public class testsheeeyt {

    public testsheeeyt() {

}

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int evenList[] = new int[10];
    int oddList[] = new int[10];
    int negativeList[] = new int[10];
    int neg =0;
    int odd = 0;
    int even =0;
    int x=0;

    System.out.println("Enter number ");
    for(x= 0;x<10;++x){     



        if(x%2 == 0 && x>0){
            evenList[x] = scan.nextInt();
            even++;
        } 
        if(x%2 != 0){
            oddList[x] = scan.nextInt();
            odd++;
        }if(x<0){
            negativeList[x] = scan.nextInt();
            neg++;
        }
    }


    System.out.println("The list of negative numbers is :-"); 
    for (x = 0; x < neg; x++) 
    { 
    System.out.println( negativeList[x]); 
    } 
    System.out.println("\nThe list of even numbers is :-"); 
    for (x = 0; x < even; x++) 
    { 
    System.out.println( evenList[x]); 
    } 
    System.out.println("The list of odd numbers is :-"); 
    for (x = 0; x < odd; x++) 
    { 
    System.out.println( oddList[x]); 
    }

    System.exit(0);
}

}
它不会工作。帮助

4 个答案:

答案 0 :(得分:0)

你需要检查输入数字而不是x。 像

for(x=0;x<10;++x){
    int t = scan.nextInt();
    if(t>=0){
        if(t%2 == 0 ){
            evenList[x] = t;
            even++;
        } else{
            oddList[x] = t;
            odd++;
        }
    }else {
        negativeList[x] = t;
        neg++;
    }
}

答案 1 :(得分:0)

你将x从1点翻到10点。

如果x是奇数,即使它是偶数,你也将输入放入奇数阵列 如果x是evev,即使它是偶数

,也会将输入放入偶数数组中

您想获取输入并查看输入是奇数还是偶数。

答案 2 :(得分:0)

你正在用x迭代循环索引,你正在检查这个数字是偶数,奇数还是负数。如果我理解正确的问题,您需要处理输入数字。请尝试以下方法:

for(x= 0;x<10;++x){     
int num = scan.nextInt();
    if(num%2 == 0 && num>0){
        evenList[x] = num;
        even++;
    } 
    else if(num%2 != 0){
        oddList[x] = num;
        odd++;
    }else if(num<0){
        negativeList[x] = num;
        neg++;
    }
}

答案 3 :(得分:0)

首先,我认为你希望你的输入循环看起来像这样 -

for (int x = 0; x < 10; ++x) {
  System.out.println("Enter number: " + (x + 1));
  int num = scan.nextInt(); // <-- get user input to
                            // test.
  // Test for negative first.
  if (num < 0) {
    negativeList[neg++] = num;
  } else {
    // It isn't negative.
    if (num % 2 == 0) {
      // It is even.
      evenList[even++] = num;
    } else {
      // It must be odd.
      oddList[odd++] = num;
    }
  }
}

其次,这是输出的一种方法

// Are there any negative numbers?
if (neg > 0) {
  System.out.println("The negative numbers are: ");
  for (int x = 0; x < neg; x++) {
    if (x != 0) {
      // Add a comma between entries.
      System.out.print(", ");
    }
    // Print the number at x (where x is 0 to neg).
    System.out.print(negativeList[x]);
  }
  // Add a new line.
  System.out.println();
}

打印数组的另一种方法(如果它们的大小正确)是使用Arrays#toString(int[]) -

 System.out.println("The negative numbers are: " + Arrays.toString(negativeList));