Results 1 to 3 of 3
- 02-11-2011, 10:03 AM #1
Member
- Join Date
- Oct 2010
- Posts
- 9
- Rep Power
- 0
Can't get correct average using array
my dat file just says this:
231
523
893
254
927
368
189
Everything else looks good but the average is obviously wrong. currently my output file says this:
Numbers in list:
231
523
893
254
927
368
189
Number count: 7
average: 67
largest numbers is: 927
2nd largest numbers is: 893
3rd largest numbers is: 523
Here is my code:
// prog04.java
import java.io.*;
class Numlistclass
{
final int MAXCOUNT = 50;
private int count;
private int sum;
private int average;
private int largest_1;
private int largest_2;
private int largest_3;
private int[] nums = new int[MAXCOUNT];
public Numlistclass()
{
int i;
count = 0;
for (i = 0; i < MAXCOUNT; i++) nums[i] = 0;
} // Numlistclass
public void addnum(int num)
{
if (count == MAXCOUNT)
System.out.println("List is full -- unable to store: "+num);
else
nums[count++] = num;
} // addnum
public void printnums(PrintWriter pw)
{
int i;
pw.println("Numbers in list:");
for (i = 0; i < count; i++) pw.println(nums[i]);
} // printnums
public void printcount(PrintWriter pw)
{
pw.println("Number count: "+count);
} // printcount
public void printaverage (PrintWriter pw)
{
for(int i = 0; i < nums.length; i++)
sum = sum + nums[i];
average = sum /nums.length;
pw.println("average: "+average);
}
public void topthree(PrintWriter pw)
{
int i;
for (i = 0; i < count; i++)
{
if (nums[i]>largest_3 && nums[i]<largest_2)
{
largest_3=nums[i];
}
else if(nums[i]>largest_2 && nums[i]<largest_1)
{
largest_3=largest_2;
largest_2=nums[i];
}
else if(nums[i] > largest_1)
{
largest_3=largest_2;
largest_2=largest_1;
largest_1=nums[i];
}
}//for
pw.println("largest numbers is: "+largest_1);
pw.println("2nd largest numbers is: "+largest_2);
pw.println("3rd largest numbers is: "+largest_3);
} // topthree
} // class Numlistclass
public class prog04
{
public static void main(String args[]) throws IOException
{
int num;
String line;
Numlistclass numlist = new Numlistclass();
BufferedReader br = new BufferedReader(new FileReader("prog04.dat"));
PrintWriter pw = new PrintWriter(new FileWriter("prog04.out"));
// store numbers in list
while ((line = br.readLine()) != null)
{
num = Integer.parseInt(line);// convert line to numeric value
numlist.addnum(num);
}
// write output
numlist.printnums(pw);
numlist.printcount(pw);
numlist.printaverage(pw);
numlist.topthree(pw);
// finalize
br.close();
pw.close();
}
} // class prog04
- 02-11-2011, 10:29 AM #2
- Join Date
- Sep 2008
- Location
- Voorschoten, the Netherlands
- Posts
- 11,385
- Blog Entries
- 7
- Rep Power
- 17
You have only 7 numbers in your array but you're dividing the sum by the length of the array (50).
kind regards,
JosWhen people rob a bank they get a penalty; when banks rob people they get a bonus.
- 02-11-2011, 10:33 AM #3
Member
- Join Date
- Oct 2010
- Posts
- 9
- Rep Power
- 0
Similar Threads
-
Need help to find average
By kevinsoto in forum New To JavaReplies: 4Last Post: 11-04-2010, 01:54 PM -
average
By anjigadu in forum New To JavaReplies: 4Last Post: 09-19-2010, 09:52 PM -
Need help getting average
By soccer_kid_6 in forum New To JavaReplies: 15Last Post: 09-12-2010, 11:59 PM -
Calculating average
By clocksaysits9 in forum New To JavaReplies: 4Last Post: 04-06-2010, 05:03 AM -
Calculate Average
By sthack99 in forum New To JavaReplies: 4Last Post: 06-13-2008, 11:09 AM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks