Reputation: 1
I can't figure out why I can't call my method. I checked it over a few times and tried running it, but it always ends right after I enter a value for the money. It's supposed to return the amount of change for a given amount of money, using hundred, fifties, twenties, tens, fives, singles, quarters, dimes, nickels, and pennies. So if it was $42.55, the output would be "0 0 2 0 0 2 2 0 1 0" (two twenties, two singles, two quarters, one nickel). Thank you in advance!
import java.util.Scanner;
public class MakeChange {
public static void main(String arg[]) {
Scanner readmoney = new Scanner(System.in);
System.out.println("Money amount? >");
double money = readmoney.nextDouble();
System.out.println();
String thing = makeChange(money);
}
public static String makeChange(double money) {
int hundreds = (int) money/100;
int fifties = (int)(money/50) - (2*hundreds);
int twenties = (int) (money/20) - (5*hundreds) - (int)(2.5*fifties);
int tens = (int)(money/10) - (10*hundreds) - (5*fifties) - (2*twenties);
int fives = (int)(money/5) - (20*hundreds) - (10*fifties) - (4*twenties) - (2*tens);
int singles = (int)(money) - (100*hundreds) - (50*fifties) - (20*twenties) - (10*tens) - (5*fives);
int quarters = (int)(money/0.25) - (400*hundreds) - (200*fifties) - (80*twenties) - (40*tens) - (20*fives) - (4*singles);
int dimes = (int)(money/0.1) - (1000*hundreds) - (500*fifties) - (200*twenties) - (100*tens) - (50*fives) - (10*singles) - (int)(2.5*quarters);
int nickels = (int)(money/0.05) - (2000*hundreds) - (1000*fifties) - (400*twenties) - (200*tens) - (100*fives) - (20*singles) - (5*quarters) - (2*dimes);
int pennies = (int)(money/0.01) - (10000*hundreds) - (5000*fifties) - (2000*twenties) - (1000*tens) - (500*fives) - (100*singles) - (25*quarters) - (10*dimes) - (5*nickels);
String change = (hundreds + " " + fifties + " " + twenties + " " + tens + " " + fives + " " + singles + " " + quarters + " " + dimes + " " + nickels + " " + pennies);
return change;
} }
Upvotes: 0
Views: 94
Reputation: 7271
The method gets called successfully. It returns a result, stores it in the variable, and then the program ends. You need to actually print the return value to the console in order to show something.
public static void main(String arg[]) {
Scanner readmoney = new Scanner(System.in);
System.out.println("Money amount? >");
double money = readmoney.nextDouble();
System.out.println();
String thing = makeChange(money);
System.out.println(thing);
}
Upvotes: 0
Reputation: 262474
String thing = makeChange(money);
}
// end of program
You're not printing your result.
The method gets called (and does not crash with an exception).
Upvotes: 4