2013-09-25 17 views
0

這是我第一次編寫多個方法,我需要一個程序,它將獲取用戶輸入的一些double值並查找平均值。這是我迄今試圖和它打印出:使用多種方法找到和平均的程序

Exception in thread "main" java.util.InputMismatchException  
at java.util.Scanner.throwFor(Unknown Source) 
at java.util.Scanner.next(Unknown Source) 
at java.util.Scanner.nextInt(Unknown Source)  
at java.util.Scanner.nextInt(Unknown Source)  
at Lab5.main(Lab5.java:11) 
import java.util.*; 
public class Lab5 
{ 
    public static void main(String args[]) { 
    Scanner scan = new Scanner(System.in); 
    int count = 0; 
    double sum = scan.nextDouble(); 
    count = scan.nextInt(); 
    printLineAverage(sum, count++); 

} 

    public static void printLineAverage(double sum, int count) 
    { 
     double average = sum/count; 
     System.out.println(average); 
    } 
} 
+0

你'printLineAverage()'方法不打印(輸出)任何東西。所以它是'calculateAverage()'。你的'main'方法也不會打印任何東西。 –

+0

@PM 77-1好吧,我編了幾次,我什麼都不能工作。有什麼建議麼? – gdhc21

+0

@ gdhc21檢查我的答案更新。 – Prateek

回答

0

提示:您需要的顯示效果正確的地方!你做到了嗎?

添加System.out.println(printLineAverage(sum, count++));以顯示printLineAverage方法的結果。

更新:改變你的主要方法

public static void main(String args[]) { 
     Scanner scan = new Scanner(System.in); 
     int count = 0; 
     double sum = scan.nextDouble(); 
     count = scan.nextInt(); 
     printLineAverage(sum, count++); 

    } 

而當你爲count輸入值記得那一定是int(不含小數)。如果你想擴展您的代碼來處理雙輸入,以及改變countint類型double

+1

這是**評論** - 不是答案。 –

+0

我編輯了一下,仍然無法弄清楚,但感謝您指出缺少打印聲明。 – gdhc21

+0

@Prateek我看到也可能結果實際上。它會不斷打印答案 – gdhc21

0

這應該讓你開始:

System.out.println(printLineAverage(sum, count++)); 
+0

我編輯了一下,仍然無法弄清楚,但感謝您指出缺少打印聲明。 – gdhc21

0

你需要有一個得到不止一個價值。然後,當用戶(例如)輸入一些非數字的字符時,您將停止接受輸入並計算並打印平均值。

public static void main(String[] args) { 

    Scanner scan = new Scanner(System.in); 
    int count = 0; 
    double sum = 0; 

    while (scan.hasNextDouble()) { 

     sum += scan.nextDouble(); 
     ++ count; 

    } 

    scan.close(); 
    printLineAverage(sum, count); 
} 

如果希望用戶先輸入一個個數值,他計劃進入,那麼你就需要爲count獲得的價值和使用for(int i=1, i<=count, ++i)環路總雙打。

+0

它只會給我平均,如果我手動退出程序(按Ctrl + C)有沒有辦法我可以解決這個問題? – gdhc21

+0

**否**。你沒有看過我的第一段。輸入「stop」或任何其他不是數字的字符組合以結束輸入。 –

0

你的問題是,當你期待程序中有一個int值時,你輸入一個double值。除此之外,你的代碼工作正常。

變化count = scan.nextInt();count = scan.nextDouble();和改變計數的種類增加一倍