2016-02-16 189 views
-2

提示用户输入数组的大小并允许用户将 输入整数值到数组中。检查每个元素是否为 或奇数。如果偶数,则打印求解元素(升序),如果奇数,则使用条件语句获得最大值和最小值 。输出结果。偶数,奇数只有奇数的最小值和最大值

public static void main(String[] args) { 

    Scanner sc = new Scanner(System.in); 
    System.out.println("Enter a number: "); 
    int n = sc.nextInt(); 
    int s[] = new int[n]; 
    for (int i = 0; i < n; i++) { 
     int e = sc.nextInt(); 
     s[i] = e; 
    } 

    Arrays.sort(s); 
    System.out.println("\nEven numbers in ascending order:"); 
    for (int j = 0; j < n; j++) { 

     if (s[j] % 2 == 0) { 
      System.out.print(s[j] + " "); 
     } 
    } 

    System.out.println("\nOdd numbers in descending order:"); 
    for(int j = (n -1); j >= 0; j--) { 
     if (s[j] % 2 == 1) { 
      System.out.print(s[j] + " "); 
     } 
    } 
} 

我不知道如何添加最小/最大为奇数

+0

到目前为止,我有代码为最小/最大值,但我很困惑如何将它添加到我目前的奇数/偶数代码 – johpen

+0

您可以告诉我们您的尝试(s)添加最小/最大代码奇数/甚至代码? –

+0

只需为奇数元素创建两个不同的数组一个偶数,并使用新创建的数组找到最大/最小值。 –

回答

1

如果我理解你的问题,你可以试试这个:

int min = Integer.MAX_VALUE; // init min to the most max value 
int max = 0; // store max value 
for(int j = (n -1); j >= 0; j--) { 
    if (s[j] % 2 == 1) { 
     if (min > s[j]) { 
      min = s[j]; 
     } 
     if (max < s[j]) { 
      max = s[j]; 
     } 
     System.out.print(s[j] + " "); 
    } 
} 
System.out.println("min = " + min); 
System.out.println("max = " + max); 

全码:

public static void main(String[] args) throws Exception { 
    Scanner sc = new Scanner(System.in); 
    System.out.println("Enter a number: "); 
    int n = sc.nextInt(); 
    int s[] = new int[n]; 
    for (int i = 0; i < n; i++) { 
     int e = sc.nextInt(); 
     s[i] = e; 
    } 

    Arrays.sort(s); 
    System.out.println("\nEven numbers in ascending order:"); 
    for (int j = 0; j < n; j++) { 

     if (s[j] % 2 == 0) { 
      System.out.print(s[j] + " "); 
     } 
    } 

    //=========================================== 
    System.out.println("\nOdd numbers in descending order:"); 
    int min = Integer.MAX_VALUE; // init min to the most max value 
    int max = 0; // store max value 
    for(int j = (n -1); j >= 0; j--) { 
     if (s[j] % 2 == 1) { 
      if (min > s[j]) { 
       min = s[j]; 
      } 
      if (max < s[j]) { 
       max = s[j]; 
      } 
      System.out.print(s[j] + " "); 
     } 
    } 
    System.out.println(); // for new line 
    System.out.println("min = " + min); 
    System.out.println("max = " + max); 
} 
+0

你能告诉我怎样才能将这段代码添加到我当前的代码中,甚至是奇数?因为在问题中它说:“如果偶数,打印解决方案要素(升序),如果奇数,则使用条件语句获得最大和最小值 ,输出结果。 – johpen

+0

现在答案更新了,你可以检查好运 –

+0

我检查过了,还好吧 – johpen

0

我的问题的解决方案是:

Scanner sc = new Scanner(System.in); 
while (true) { 
    System.out.print("Enter a Value: "); 
    int val = s.nextInt(); 

    if (val == 0) { 
     break; 
    } 
    if (val < min) { 
     min = val; 
    } 
    if (val > max) { 
    max = val; 
    } 
} 

System.out.println("min: " + min); 
System.out.println("max: " + max); 
+0

这不是一个答案,您应该通过[编辑](http://stackoverflow.com/posts/35423133/edit)链接将此内容添加到您的问题中。另外,请在添加最小/最大代码到奇数/偶数代码时添加您的尝试?编辑问题后请删除此答案。 –

+0

我尝试了上面的代码并开始工作,不过谢谢你的帮助 – johpen