从数组中获取奇数

时间:2016-12-06 04:34:30

标签: java arrays if-statement

我一直在研究这个程序,目前我被困住了。硬件提示是提示用户输入数字,将其保存为数组,找到奇数和数字。百分比然后将这些值显示给用户。

目前我正在尝试写入部分代码,找到数组中奇数的百分比,但返回没有显示,我只是想不通。有任何想法吗?谢谢!

import java.util.*; // import java course for Scanner class
public class Integers {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        System.out.println("Please input a series of numbers");
        int inputs = Integer.parseInt(console.next());
        int[] arraysize = new int[inputs];
        Oddvalues(arraysize);
    }

    public static int Oddvalues (int[] size) {
        int countOdd = 0;
        for (int i = 1; i < size.length; i++) {
            if(size[i] % 2 != 0) {
                i++;
            }
        }
        return countOdd;    
    }

}

4 个答案:

答案 0 :(得分:1)

考虑以下代码,它似乎在本地IntelliJ中工作。我的方法是从扫描程序中读取一行作为字符串,然后将该输入按空格分成组件编号。这避免了您尝试从控制台直接创建整数数组时遇到的问题。

然后,使用Integer.parseInt()迭代每个数字字符串,检查它是否是奇数。

public static void main(String[] args) {
    Scanner console = new Scanner(System.in);
    System.out.println("Please input a series of numbers");
    String nextLine = console.nextLine();
    String[] nums = nextLine.split(" ");
    int oddCount = 0;
    for (String num : nums) {
        if (Integer.parseInt(num) % 2 == 1) {
            ++oddCount;
        }
    }
    double oddPercent = 100.0*oddCount / nums.length;
    System.out.println("Total count of numbers: " + nums.length + ", percentage odd: " + oddPercent);
}

答案 1 :(得分:0)

在函数Oddvalues中,您提升i而不是提升countOdd。循环应该从0开始而不是1。

答案 2 :(得分:0)

试试这个

import java.util.*;
import java.lang.*;
import java.io.*;
public class OddVals{
public static void main(String[] args) throws java.lang.Exception {
    Scanner sc = new Scanner(System.in);
    int[] array = new int[sc.nextInt()];        // Get the value of each element in the array
    System.out.println("Please input a series of numbers");
    for(int i = 0; i < array.length; i++)
        array[i] = sc.nextInt();
    System.out.println("Number of Odds:" +Oddvalues(array));
    printOdd(array);
    }
public static int Oddvalues (int[] size) {
    int countOdd = 0;
    for (int i=0; i < size.length; i++){
        if(size[i]%2 != 0)
         ++countOdd;            
    }
    return countOdd;    
    }
public static void printOdd(int[] arr)
{
    for(int i=0;i<arr.length;++i)
    {
        if(arr[i]%2==1)
            System.out.print(arr[i]+" ");
    }
}

答案 3 :(得分:0)

foreach (DataGridViewRow row in dataGridViewInvoice.Rows)
            {
                string ItemType = row.Cells["SubCategory"].Value.ToString();
                if(ItemType == "Frame" && ItemType == "Lens" && ItemType == "Consultation")
                {
                    MessageBox.Show("You can't select all items at once");
                }
            }

如果这有帮助