我的問題是以下。如果我輸入數字2,則代碼將其計爲一個奇數。雖然循環偶數
剩餘2/2 = 0,所以錯誤沒有意義。
下面是程序:
import java.util.Scanner;
public class Ohjelma {
public static void main(String[] args) {
// Tänne voit kirjoittaa ohjelmakoodia. Ohjelmasi voit ajaa
// valitsemalla menusta Run->Run File tai painamalla Shift+F6
Scanner reader = new Scanner(System.in);
System.out.println("Type numbers: ");
int number = Integer.parseInt(reader.nextLine());
int sum = 0;
int many = 0;
double average = 0;
int even = 0;
int odd = 0;
while (number != -1) {
System.out.println("Type numbers: ");
sum = sum + number;
number = Integer.parseInt(reader.nextLine());
many++;
average = (double)sum/many;
if (number%2 == 0) {
even++;
} else {
odd++;
}
}
System.out.println("Thank you and see you later!");
System.out.println("The sum is " + sum);
System.out.println("How many numbers: " + many);
System.out.println("Average: " + average);
System.out.println("Even numbers: " + even);
System.out.println("Odd numbers: " + odd);
這可能是家庭作業,所以我會提示你:打印出循環底部的數字,總和,許多,平均,甚至和奇數的值。這樣你可以確保變量在每次迭代後都有正確的值。 – 2014-11-02 17:51:19
請考慮使用[Scanner.nextInt()](http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextInt(int))或捕獲NumberFormatException ''parseInt'可以拋出。這種遺漏使我的眼睛流血。 – mabi 2014-11-02 17:52:38
我知道其他類型的回答你,但不清楚你的問題是什麼? – 2014-11-02 18:05:07