我有一个代码,它创建一个整数数组,而不是系统检查输入的数字,并找出奇数和可分数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;
}
}
答案 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();