2015-02-18 2 views
0

Я пытался сделать базовый калькулятор, который вычисляет среднее значение из 9 чисел. Проблема в том, что она всегда пропускает последнюю строку. Мой код:Java Пропуск последней вариации

/* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package avarage.calc; 
import java.util.Scanner; 
/** 
* 
* @author taine 
*/ 
public class AvarageCalc { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     Scanner input = new Scanner(System.in); 
     double num1; 
     double num2; 
     double num3; 
     double num4; 
     double num5; 
     double num6; 
     double num7; 
     double num8; 
     double num9; 
     double num10; 
     double ans; 
     System.out.print("Enter Number #1:"); 
     num1 = input.nextDouble(); 
     System.out.print("Enter Number #2:"); 
     num2 = input.nextDouble(); 
     System.out.print("Enter Number #3:"); 
     num3 = input.nextDouble(); 
     System.out.print("Enter Number #4:"); 
     num4 = input.nextDouble(); 
     System.out.print("Enter Number #5:"); 
     num5 = input.nextDouble(); 
     System.out.print("Enter Number #6:"); 
     num6 = input.nextDouble(); 
     System.out.print("Enter Number #7:"); 
     num7 = input.nextDouble(); 
     System.out.print("Enter Number #8:"); 
     num8 = input.nextDouble(); 
     System.out.print("Enter Number #9:"); 
     num9 = input.nextDouble(); 
     ans = num1 + num2 + num3 + num4 + num5 + num6 + num8 + num9; 
     System.out.println("The Average of the numbers you gave is:" + ans/9); 
    } 
} 

Когда программа работает:

run: 
Enter Number #1:20 
Enter Number #2:20 
Enter Number #3:20 
Enter Number #4:20 
Enter Number #5:20 
Enter Number #6:20 
Enter Number #7:20 
Enter Number #8:20 
Enter Number #9:20 
The Average of the numbers you gave is:17.77777777777778 
BUILD SUCCESSFUL (total time: 10 seconds) 
+0

Я знаю, что есть переменная с именем «num10», я попробовал ее с удаленным, и он все еще не работает. – Taine

ответ

3

Ваш средний неверен потому, что вам не хватает num7 в вашей сумме

ans = num1 + num2 + num3 + num4 + num5 + num6 + num8 + num9; 

должен быть

ans = num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + num9; 
+0

спасибо. im только начало Java, так что все еще изучая основы :) – Taine

1
  1. У вас есть 10 переменных, но вы вычисляете среднее значение 9. Это то, что вы хотите? Во всяком случае, @ the-tom показал вашу ошибку. Вы забыли о переменной num7.
  2. Чем меньше строк кода у вас есть тем меньше возможностей для получения ошибки.

Вероятно, будет лучше сделать что-то вроде этого:

double ans = 0; 
Scanner input = new Scanner(System.in); 
int x = 9 //Or some other number 
for(int i = 1; i <= x; i++){ 
    System.out.print("Enter Number #" + i); 
    ans += input.nextDouble(); 
} 

System.out.println("The Average of the numbers you gave is:" + ans/x); 

Теперь, если вам нужно вычислить среднее значение из 20 элементов, все, что вам нужно просто установить значение x в 20.

Смежные вопросы