2016-03-05 68 views
-1

我的任务需要我读取用户输入的数字并输出数字生成的硬币。例如,如果用户输入“37”,程序应该回应(1季度,1毛钱和2便士)。钱币变化计算

这是迄今为止我已经得到了我会很感激,如果有人可以帮助我完成它,以及看我当前的代码有follwing可以使用任何错误

import java.util.Scanner; 
public class Coin 
{ 
    Scanner sc = new Scanner (System.in); 
    Int n = sc.nextInt("Enter a positive integer"); 
    int number1, number2; // Division operands 
    int quotient;   // Result of division 

    public static int getQuarters(int cents) { 
     return Math.floor(cents/25.0); 
    } 
    public static int getDimes(int cents) { 
     return Math.floor(cents/10.0); 
    } 
    public static int getNickels(int cents) { 
     return Math.floor(cents/5.0); 
    } 
    public static int getPennies(int cents) { 
     return Math.floor(cents/1.0); 
    } 
    public static void main(String[] args) { 
     int cents = 46; 
     int left = cents; 
     int quarters = getQuarters(cents); 
     int left -= quarters * 25; 
     int dimes = getDimes(left); 
     left -= dimes * 10; 
     int nickels = getNickels(left); 
     left -= nickels * 5; 
     int pennies = left; 
     System.out.println(cents + " cents = " + quarters + " Quarters, " + dimes + " Dimes, " + nickels + " Nickels, and " + pennies + " Pennies."); // print the output 
    } 
} 
+0

你面临的问题是什么? –

回答

0

的代码,但我不太了解你的变数。

import java.util.Scanner; 

public class Test{ 

public static int getQuarters(int cents) { 
       return (int) Math.floor(cents/25.0); 
} 
public static int getDimes(int cents) { 
       return (int) Math.floor(cents/10.0); 
} 
public static int getNickels(int cents) { 
       return (int) Math.floor(cents/5.0); 
} 
public static int getPennies(int cents) { 
       return (int) Math.floor(cents/1.0); 
} 
public static void main(String[] args) { 
    Scanner sc = new Scanner (System.in); 
    System.out.println("Enter a positive integer"); 
    int n = sc.nextInt(); 
    // int number1, number2; // Division operands 
    // int quotient;   // Result of division 
    int cents = n; 
    int left = cents; 
    int quarters = getQuarters(cents); 
    left -= quarters * 25; 
    int dimes = getDimes(left); 
    left -= dimes * 10; 
    int nickels = getNickels(left); 
    left -= nickels * 5; 
    int pennies = left; 
    System.out.println(cents + " cents = " + quarters + " Quarters, " + dimes + " Dimes, " + nickels + " Nickels, and " + pennies + " Pennies."); // print the output 
} 
} 
+0

非常感谢,如果编译,但我怎么做,所以结果没有0时,硬币isint使用以及复数和单数。我想出了这个,这是对的吗? https://gyazo.com/19927151498f27706a538afbb3e1a448 –

+0

我认为一个更好的方法是最后添加一个判断。就像if(quarters!= 0)Systen.out.println(quarters); – TanLingxiao

1

首先,“如果我当前的代码有任何错误” - 是的,它的确如此,您的开发环境应该指出它们。或者,如果您使用的是命令行构建,它会再次指出它们。那个向我跳来跳去的人:你有第二个“左”的定义。但重要的是,让您的IDE或构建脚本告诉您是否有任何语法错误。

然后,要解决“可以帮我完成”我问:你甚至试过运行它? (不,不会用第二个“int left”定义进行编译)。但清理错误,运行它,看看会发生什么......你可能会感到惊讶。

当然,那么你需要激活输入扫描器,而不是硬编码的金额来计算...