当前位置: 首页 > 知识库问答 >
问题:

显示偶数和所有奇数

樊杰
2023-03-14

下面写的代码是正确的,但我想缩短这段代码。

用java编写一个程序,在单维数组中输入10个数字,并以所有偶数后面跟着所有奇数的方式排列它们。

int a[] = new int[6];
int b[] = new int[6];
int i, j;
int k = 0;
System.out.println("enter array");
for (i = 0; i < 6; i++) {  
    a[i] = sc.nextInt();
}
for (j = 0; j < 6; j++) {
    if (a[j] % 2 == 0) {
        b[k] = a[j];
        k++;
    }
}
for (j = 0; j < 6; j++) {
    if (a[j] % 2 != 0) {
        b[k] = a[j];
        k++;
    }
}
System.out.println("out-put");
for (i = 0; i < 6; i++) {  
    System.out.println(b[i]);
}

我能把偶数和奇数安排在一个for循环中而不是两个for循环中吗?我使用双for循环将偶数和奇数转换为b[]数组。请缩短代码。一个用于检查偶数的循环遍历,另一个用于检查奇数。

共有3个答案

昝欣可
2023-03-14

此代码将帮助您隔离偶数和奇数。

// java code to segregate even odd 
// numbers in an array 
public class GFG { 

// Function to segregate even 
// odd numbers 
static void arrayEvenAndOdd( 
            int arr[], int n) 
{ 

    int i = -1, j = 0; 
    while (j != n) { 
        if (arr[j] % 2 == 0) 
        { 
            i++; 

            // Swapping even and 
            // odd numbers 
            int temp = arr[i]; 
            arr[i] = arr[j]; 
            arr[j] = temp; 
        } 
        j++; 
    } 

    // Printing segregated array 
    for (int k = 0; k < n; k++) 
        System.out.print(arr[k] + " "); 
} 

// Driver code 
public static void main(String args[]) 
{ 
    int arr[] = { 1, 3, 2, 4, 7, 
                        6, 9, 10 }; 
    int n = arr.length; 
    arrayEvenAndOdd(arr, n); 
 } 
} 
林意蕴
2023-03-14

在这个版本中,它将偶数复制到开始,将奇数复制到结束。

static int[] sortEvenOdd(int... nums) {
    int even = 0, odd = nums.length, ret[] = new int[nums.length];
    for (int num : nums)
        if (num % 2 == 0)
            ret[even++] = num;
        else
            ret[--odd] = num;
    return ret;
}

public static void main(String[] args) {
    int[] arr = {1, 3, 2, 4, 7, 6, 9, 10};
    int[] sorted = sortEvenOdd(arr);
    System.out.println(Arrays.toString(sorted));
}

指纹

[2, 4, 6, 10, 9, 7, 3, 1]
秦凯旋
2023-03-14

这里有一个简单的程序。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

/**
 *
 * @author Momir Sarac
 */
public class GroupByEvenAndOddNumbers {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // create a collection
        List<Integer> listOfNumbers = new ArrayList<>();
        // do code within a loop for 10 times
        for(int i=0;i<10;i++)
        {
            //print to screen this text
            System.out.println("Input your number:");
            //get next input integer
            int number = scanner.nextInt();
            // add it to collection
            listOfNumbers.add(number);
        }
        // sort this collection, list of numbers
        // convert all numbers(positive and negative ) within to 0 or 1 depending whether or not they are even or odd and sort them accordignaly.
        Collections.sort(listOfNumbers, Comparator.comparingInt(n -> Math.floorMod(n, 2)));
        //print sorted collection
        System.out.println("Ordered list ..." + listOfNumbers);
    }
}
 类似资料:
  • 我想得到用户输入的所有奇数和偶数,然后得到所有奇数的乘积和偶数的差值。例如:输入一个字符串:dfgi456456=';]=34521。输出应该显示用户输入中的所有奇数和偶数以及乘积和差值,在这种情况下,奇数是:5,3,1偶数是:4,6,2奇数的PRODUCT(乘法答案):15偶数的DIFFERENCE(减法答案):-4。请查看我下面的代码。任何帮助都将不胜感激。谢谢。 }

  • 问题内容: 我正在尝试创建两个线程,一个线程显示0到10的偶数整数,一个线程显示1到11的奇数整数。下面的代码是否适合设计该程序? 问题答案: 我只是更改一些细节(无需在此处使用模运算符…):

  • 我需要显示所有偶数,因为它小于一个特定的数字。这些数字是在一个范围之间随机生成的。以下是作业: 编写提示用户输入整数(n)的程序。然后,程序生成另一个随机整数(max),最多达到10*n。因此,如果输入的n是5,那么生成的数字(max)应该在5到50(5*10)之间。这个程序显示小于(max)的所有偶数的和。您的程序在第一个和值大于max时停止。显示其价值。

  • 本文向大家介绍奇数和偶数之和之间的差。,包括了奇数和偶数之和之间的差。的使用技巧和注意事项,需要的朋友参考一下 问题陈述 对于给定的长整数n,编写一个程序以查找奇数位和偶数位总和之间的差是否为0。索引从0开始。 示例 示例 以下是Java中的程序,用于查找所需的输出。 输出结果

  • 问题内容: 我的前端有一个TypeAhead / Bloodhound实现,可从Play / Scala服务器获取JSON数据。Typeahead版本为0.11.1。实现如下: HTML: JavaScript: 服务器提供的JSON响应: 服务器分页结果,以便最多给出5个结果,这也应该是Typeahead / Bloodhound的默认限制。 问题在于,当服务器返回5个结果时,Typeahead

  • 问题内容: 我在此站点上看到了此代码。它使用一种方法来对数组进行排序,其中偶数排在数组的前面,而奇数排在数组的后面。我想知道您是否可以做同样的事情,除了先显示奇数,然后再显示偶数?我试过了,但无济于事。我是Java编程的新手,我想测试递归。 } 输出是这样的: 问题答案: 好吧,如果你想单号是第一位的,取代任何与任何带: