2017-11-17 21 views
0

だから、毎週の平均気温の平均をプリントアウトするプログラムが必要ですが、それを行う方法の解決策は見つかりません。現在、私はSystem.out.printとして週の気温の平均を印刷する列を持っているので、2次元配列ではありませんが、今ではその平均の平均を見つける必要があります。私は平均を見つけるのにSystem.out.print(average/4);を使ってみましたが、それがプリントアウトする番号は正しくありません。このコードをどのように書くべきですか?最後の列の平均値を見つける

import java.text.DecimalFormat; 
import java.util.Scanner; 

public class TwoDimArray { 

    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 

     // 1) Declare and allocate Storage 
     //Each day name is assigned to the array as a String so each name must be enclosed in apostrophes and each string must be separated by commas. 
     String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}; 
     double[][] Temperature = new double[4][7]; 

     // 2) Populate Array 
     for (int i = 0; i < Temperature.length; i++) { 
      for (int j = 0; j < Temperature[0].length; j++) { 
       //days[j] will print the proper day and "(i+1)" will print the proper day of the week 
       System.out.print("Enter " + days[j] + " Temperature " + "for Week " + (i + 1) + ": " + " "); 
       Temperature[i][j] = scan.nextDouble(); 
      } 

     } 
     System.out.println(); 
     System.out.println("    Weekly Temperature Report "); 
     System.out.println("Mon  Tue  Wed  Thurs Fri Sat  Sun Average"); 

     double columnTotal, average; 
     // 4) Output Array 

     for (int i = 0; i < Temperature.length; i++) { 
      System.out.println(); 
      columnTotal = 0; 
      for (int j = 0; j < Temperature[0].length; j++) { 
       System.out.print(Temperature[i][j] + "\t"); 
       columnTotal += Temperature[i][j]; 
      } 
      average = columnTotal/7; 
      System.out.println(average); 
     } 

     System.out.println(); 
     System.out.println("------------------------------------------------------------------"); 
     int avg; 
     for (int i = 0; i < Temperature[0].length; i++) { 
      columnTotal = 0; 
      avg = 0; 
      for (int j = 0; j < Temperature.length; j++) { 
       columnTotal = columnTotal + Temperature[j][i]; 

      } 
      System.out.print((columnTotal/4) + " "); 
      System.out.print(average/4); 

     } 
    } 
} 
+0

のように見えるのだろうか?サンプル入力、実際の出力、および期待される出力を提供します。紙で数学を手作業で行い、次にコードに変換してください。デバッガを使用してループを実行し、計算結果を見て、それらが用紙に合っていることを確認します。 –

答えて

1

OKウルコード

  1. における以下の変更は、このaverage = columnTotal/7を交換平均average[] = new double[Temperature.length];
  2. の配列を宣言しません。 System.out.println(average); with this

    average[i] = columnTotal/7 ;System.out.println(average[i]); 平均的な配列を配列に格納しています。あなたはループ

  3. の終わりまで、何度も何度も上書きされ、最後に

    columnTotal = 0でコードの最後の部分を置き換えた単純な変数で平均値を格納しました。

    for (int i = 0; i < average.length; i++) { 
         columnTotal = columnTotal +average[i]; 
        } 
        System.out.print((columnTotal/4) + " "); 
    

そして、最後にあなたのコードは、それが出力し_The番号が何を意味するかをcorrect_されていないんこの

import java.text.DecimalFormat; 
import java.util.Scanner; 

public class TwoDimArray { 

    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 

     // 1) Declare and allocate Storage 
     //Each day name is assigned to the array as a String so each name must be enclosed in apostrophes and each string must be separated by commas. 
     String[] days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}; 
     double[][] Temperature = new double[4][7]; 

     // 2) Populate Array 
     for (int i = 0; i < Temperature.length; i++) { 
      for (int j = 0; j < Temperature[0].length; j++) { 
       //days[j] will print the proper day and "(i+1)" will print the proper day of the week 
       System.out.print("Enter " + days[j] + " Temperature " + "for Week " + (i + 1) + ": " + " "); 
       Temperature[i][j] = scan.nextDouble(); 
      } 

     } 
     System.out.println(); 
     System.out.println("    Weekly Temperature Report "); 
     System.out.println("Mon  Tue  Wed  Thurs Fri Sat  Sun Average"); 

     double columnTotal, average[] = new double[Temperature.length]; 
     // 4) Output Array 

     for (int i = 0; i < Temperature.length; i++) { 
      System.out.println(); 
      columnTotal = 0; 
      for (int j = 0; j < Temperature[0].length; j++) { 
       System.out.print(Temperature[i][j] + "\t"); 
       columnTotal += Temperature[i][j]; 
      } 
      average[i] = columnTotal/7; 
      System.out.println(average[i]); 
     } 

     System.out.println(); 
     System.out.println("------------------------------------------------------------------"); 

     columnTotal = 0; 
     for (int i = 0; i < average.length; i++) { 
       columnTotal = columnTotal +average[i]; 
      } 
      System.out.print((columnTotal/4) + " "); 
      //System.out.print(average/4); 

     } 
    } 
+0

ありがとうございます。私は、平均を配列にすることはうまくいくと思っていましたが、それがどうなるかは確かではありませんでした。再度、感謝します。 – KayB

関連する問題