Question
Hi- my output for the average distance is 1285, when its meant to be 1285.71 - what do I need to change in my java
Hi- my output for the average distance is 1285, when its meant to be 1285.71 - what do I need to change in my java code to fix this? (Code below) The other test cases used to test my code did not have decimals in the average, so I'm struggling to find a way for it to work without a decimal place (e.g. just 50 instead of 50.00) and with a decimal place when needed. Thanks!
Code
import java.util.ArrayList;
import java.util.Scanner;
public class TestCar {
public static void main(String[] args) {
int x=0,k=0;
ArrayList
Scanner in = new Scanner(System.in);
System.out.print("Input name: ");
String name=in.nextLine();
System.out.print("Input registration: ");
String registration=in.nextLine();
System.out.print("Input colour: ");
String colour=in.nextLine();
System.out.print("Input trips: ");
int trips=in.nextInt();
if(trips==0) {
System.out.print("Odometer reading "+k+": ");
int odometer_distance1=in.nextInt();
odometer_distance.add(odometer_distance1);
}
else {
for(int i=0;i System.out.print("Odometer reading "+k+": "); int odometer_distance1; odometer_distance1 = in.nextInt(); if(x==0) { i=0; } if(x>odometer_distance1) { break; } else { odometer_distance.add(odometer_distance1); x=odometer_distance1; } k=k+1; } } System.out.println(); Car c=new Car(name,registration,colour,trips,odometer_distance); System.out.println(c.getName()+ " | " +c.getRegistration()+ " | " +c.getColour()); System.out.println("Longest distance travelled: "+ longest(c.getOdometer_distance())); System.out.println("Shortest distance travelled: "+shortest(c.getOdometer_distance())); System.out.println("Average distance travelled: "+average(c.getOdometer_distance())); } static int longest(ArrayList int m=0,diff=0; for(int i=0;i diff=odometer_distance.get(i+1)-odometer_distance.get(i); if(diff>m) { m=diff; } } return m; } static int shortest(ArrayList int m=0,diff=0; for(int i=0;i diff=odometer_distance.get(i+1)-odometer_distance.get(i); if(m==0) { m=diff; } else if(m>diff) { m=diff; } } return m; } static int average(ArrayList int avg=0,diff=0,s=0,c=odometer_distance.size(); for(int i=0;i diff=odometer_distance.get(i+1)-odometer_distance.get(i); s+=diff; if(odometer_distance.get(i)==0) { c=c-1; } else c=c; } if(c==0) { return 0; } else { avg=s/c; return avg; } } }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started