Issue
import java.io.*;
public class carwip2
{
public static void main(String args[])
{
getAverageCarSales();
}
public static void getAverageCarSales()
{
Scanner sc= new Scanner(System.in);
int no_car_sold=0 , z=0;
int yr_no=0;
int yrs=0;
float average_sold=0F;
System.out.println("Enter number of years");
yr_no=sc.nextInt();
if (!isValid(yr_no))
{
return;
}
for (int i=0; i<yr_no;i++)
{
System.out.println("Enter the year");
yrs=sc.nextInt();
if (!isValid(yrs))
{
return;
}
for (int j=0;j<6;j++)
{
System.out.println("Enter number of cars sold for year " + yrs + " in month #" + (j+1));
no_car_sold=sc.nextInt();
if (!isValid(no_car_sold))
{
return;
}
no_car_sold=no_car_sold + z;
}
}
System.out.println("Total number of months:" + (yr_no*6) );
System.out.println("Total number of cars sold: " + no_car_sold);
average_sold= no_car_sold/yr_no;
System.out.println("Average number of cars sold per month: " + average_sold);
}
public static boolean isValid(int x)
{
return true;
}
}
Basically, my question is how do I fix my code to where each number I input gets added together? For example, let's say I put 2 years to be calculated, input some numbers for each month for the first year, enter the next year, enter more values; the last value I input becomes the total cars sold, which isn't the number I'm looking for. I would like to add all the amounts of cars sold instead of output the most recent input.
Solution
You need to have a variable to store the total sale. Also, the average number of cars sold per month must be calculated by dividing the total number divided by (no. of years * 6). On a side note, you should follow Java naming conventions e.g. the class, carwip2
should be named as Carwip2
Do it as follows:
import java.util.Scanner;
public class Carwip2 {
public static void main(String args[]) {
getAverageCarSales();
}
public static void getAverageCarSales() {
Scanner sc = new Scanner(System.in);
int total_no_car_sold = 0, no_car_sold = 0, z = 0;
int yr_no = 0;
int yrs = 0;
double average_sold = 0.0;
System.out.print("Enter number of years: ");
yr_no = sc.nextInt();
if (!isValid(yr_no)) {
return;
}
for (int i = 0; i < yr_no; i++) {
System.out.print("Enter the year: ");
yrs = sc.nextInt();
if (!isValid(yrs)) {
return;
}
for (int j = 0; j < 6; j++) {
System.out.print("Enter number of cars sold for year " + yrs + " in month #" + (j + 1) + ": ");
no_car_sold = sc.nextInt();
if (!isValid(no_car_sold)) {
return;
}
total_no_car_sold = total_no_car_sold + no_car_sold;
}
}
System.out.println("Total number of months:" + (yr_no * 6));
System.out.println("Total number of cars sold: " + total_no_car_sold);
average_sold = total_no_car_sold / (yr_no * 6.0);
System.out.println("Average number of cars sold per month: " + average_sold);
}
public static boolean isValid(int x) {
return true;
}
}
A sample run:
Enter number of years: 2
Enter the year: 2005
Enter number of cars sold for year 2005 in month #1: 2
Enter number of cars sold for year 2005 in month #2: 3
Enter number of cars sold for year 2005 in month #3: 4
Enter number of cars sold for year 2005 in month #4: 1
Enter number of cars sold for year 2005 in month #5: 2
Enter number of cars sold for year 2005 in month #6: 3
Enter the year: 2006
Enter number of cars sold for year 2006 in month #1: 4
Enter number of cars sold for year 2006 in month #2: 3
Enter number of cars sold for year 2006 in month #3: 1
Enter number of cars sold for year 2006 in month #4: 3
Enter number of cars sold for year 2006 in month #5: 4
Enter number of cars sold for year 2006 in month #6: 2
Total number of months:12
Total number of cars sold: 32
Average number of cars sold per month: 2.6666666666666665
Feel free to comment in case of any doubt/issue.
Answered By - Arvind Kumar Avinash Answer Checked By - Marie Seifert (PHPFixing Admin)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.