2016-12-06 13 views
-1

私は、ユーザが希望するn個の数字を入力し、配列を使って平均を見つけるためにjavaでプログラムを書くことを望みます。私は、以下のプログラムを思い付いたが、私はそれを実行したときに問題があるように思われる: Exception in thread "main" java.lang.NullPointerException at wert.main(wert.java:12)配列に要素を追加するときにNullPointerExceptionが発生するのはなぜですか?

これは、問題のコードです:

import java.util.Scanner; 
public class wert { 

public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 
    int gucci[] = null; 
    System.out.print("Enter the length\n"); 
    int n = sc.nextInt(); 
    System.out.println("enter the numbers : "); 
    for(int i=0;i<n;i++){ 

     int k = sc.nextInt(); 
     gucci[i] = k; 
     } 
    int m = average(gucci); 
    System.out.println(m/n); 

} 
    public static int average(int x[]){ 
     int total = 0; 
     for(int f: x){ 
      total =+ f; 
     } 
     return total; 
    } 
} 

私は本当にを求めていた場合、私はごめんなさい基本的な質問。私は数日後に自分自身でJavaを学び始めました。

+1

...問題は? – Mritunjay

+0

@Mritunjay私は –

+4

を編集しました。あなたの配列は初期化されていません。gucci [] = null'、代わりにArrayListを使用します。初期化したら配列のサイズを再定義することはできません。 –

答えて

3

配列が割り当てがNullPointerExceptionで失敗しnullあるので、これは問題

int gucci[] = null; 

です。

変更

System.out.print("Enter the length\n"); 
int n = sc.nextInt(); 
int[] gucci = new int[n]; 

これまでこの部分

int gucci[] = null; 
System.out.print("Enter the length\n"); 
int n = sc.nextInt(); 

は、入力します長さの配列を作成します。

もう一つの問題は、あなたがtotal = total+fを追加したい場合は、以下のようにする必要があり、ここで

total =+ f; 

です。

total += f; 
+0

私のロジックに問題はありますか?私はちょうどそれを実行し、平均を得ていません。 –

+0

私はそれをソートしました。 + =の代わりに+をタイプしました。おかげでそく@Mritunjay –

関連する問題