如何构建1d数组并找到奇数可被5整除的数字?

时间:2015-02-04 09:00:38

标签: java arrays for-loop

我有一个代码,它创建一个整数数组,而不是系统检查输入的数字,并找出奇数和可分数5,而不是显示这些数字的总和。

但问题是我的代码没有显示任何内容

那么如何修复我的代码?

这是我的代码:

package question2;

import java.util.Scanner;

public class SumOdd5 {


    static int[] array = new int[15];
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args){
        System.out.println("Enter numbers");
        for(int i = 0; i<array.length; i++){
            array[i]=sc.nextInt();

        }
        sumOddDiv5();
    }

    public static int sumOddDiv5(){
        int sum;
        int odd = 0;
        for(int i = 0; i<array.length; i++){

            if(array[i] % 2 !=0 && array[i] % 5 ==0){
                odd++;
            }
        }
        sum = sum + odd;
    return sum;
    }
}

4 个答案:

答案 0 :(得分:0)

您的代码很好(尽管可以简化), 但是你必须显示方法的输出才能看到它:

System.out.println(sumOddDiv5());

编辑:

实际上,您正在计算可被5整除的奇数输入的数量,而不是它们的总和,因此您应该将当前数字添加到总数中而不是odd++

此外,您可以将条件简化为:

if(array[i] % 10 == 5)

因为您正在寻找以5结尾的数字。

答案 1 :(得分:0)

根据您的要求,这个块对我来说是错误的:

if(array[i] % 2 !=0 && array[i] % 5 ==0){
    odd++;
}

你正在递增一个计数器,但你没有创建一个奇数的总和。你也不打印它。试试这个:

int total = 0;
if ( array[i] % 2 != 0 && array[i] % 5 != 0) { // it's an odd number
    total += array[i];
}
System.out.println("Total: " + total);

答案 2 :(得分:0)

正如您的问题陈述所说,您的代码未打印sum
1.您没有使用sum变量进行求和 你需要退还你的金额才能打印出来。

 public class SumOdd5 {
    static int[] array = new int[15];
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args){
        System.out.println("Enter numbers");
        for(int i = 0; i<array.length; i++){
            array[i]=sc.nextInt();
        }
        int sum = sumOddDiv5();
        System.out.println("Sum of Number : "+sum);
    }

    public static int sumOddDiv5(){
        int sum=0;
        for(int i = 0; i<array.length; i++){

            if(array[i] % 2 !=0 && array[i] % 5 ==0){
                  sum +=array[i]; 
            }
        }
        return sum;
    }
}

答案 3 :(得分:0)

我意识到您已经要求进行错误检查而不是建议,但我只是想知道您是否考虑过使用Java 8流?

Arrays.stream(array)
    .filter(n -> n % 2 != 0)
    .filter(n -> n % 5 == 0)
    .sum();