Eban Nick
Eban Nick

Reputation: 67

How to find an average of numbers in two-dimensional array

public class iDon'tRemember {
    public static void main(String[] args) {
        double average=0;
        int sum = 0;
        Scanner in = new Scanner(System.in);
        System.out.println("Enter 2 numbers:  ");
        int a=in.nextInt();
        int b=in.nextInt();
        int[][]array=new int[a][b];
        Random rnd=new Random();
        for (int i=0;i<array.length;i++){
            for (int j =0; j<array[i].length;j++){
                array[i][j]=rnd.nextInt(10)+1;
                sum+=array[i][j];
                average=(float)sum/array.length;
                System.out.print(array[i][j] + "\t");
            }
            System.out.println();

        }
        System.out.println(average+"is average of array!");
    }
}

I'm trying to find an average of numbers but it's usually wrong in console, help to find the mistake!

Upvotes: 1

Views: 67

Answers (3)

kevin ternet
kevin ternet

Reputation: 4612

or more genericaly

    average=(float)sum/(array.length * array[0].length);

Upvotes: 1

Rohit Kumar
Rohit Kumar

Reputation: 549

Keep the class name in the program and *class file name same!!

Don't use special character in Class name


import java.util.*;

 public class Main{
public static void main(String[] args) {
    double average=0;
    int sum = 0;
    Scanner in = new Scanner(System.in);
    System.out.println("Enter 2 numbers:  ");
    int a=in.nextInt();
    int b=in.nextInt();
    int[][]array=new int[a][b];
    Random rnd=new Random();
    for (int i=0;i<array.length;i++){
        for (int j =0; j<array[i].length;j++){
            array[i][j]=rnd.nextInt(10)+1;
            sum+=array[i][j];
            average=(float)sum/(array.length * array.length);
            System.out.print(array[i][j] + "\t");
        }
        System.out.println();

    }
    System.out.println(average+"is average of array!");
}
}

Upvotes: 1

Gulshan Chaurasia
Gulshan Chaurasia

Reputation: 318

I just corrected your code:

import java.util.Random;
import java.util.Scanner;

public class Average2DArray {

    public static void main(String[] args) 
    {
        double average=0;
        int sum = 0;
        Scanner in = new Scanner(System.in);
        System.out.println("Enter 2 numbers:  ");
        int a=in.nextInt();
        int b=in.nextInt();
        int[][]array=new int[a][b];
        Random rnd=new Random();
        for (int i=0;i<array.length;i++)
        {
            for (int j =0; j<array[i].length;j++)
            {
                array[i][j]=rnd.nextInt(10)+1;
                sum+=array[i][j];                
                System.out.print(array[i][j] + "\t");
            }
            System.out.println();

        }

        average=(float)sum/(a*b);//length of 2D array is a*b <--------- also moved it out of the loop
        System.out.println(average+"is average of array!");
    }

}

Upvotes: 1

Related Questions