gpt4 book ai didi

c - 仅使用算术运算符将美元金额排序为 20/10/5/1(无循环)

转载 作者:行者123 更新时间:2023-12-04 08:57:05 24 4
gpt4 key购买 nike

我需要编写一个程序,让用户输入美元金额,该程序会将美元金额整理成 20 位、10 位、5 位和 1 位。例如,如果用户投入 93 美元,程序将整理出 4 个 20's、0 个 10's、0 个 5's 和 3 个 1's,所有这些都不使用循环、数组或 if 语句。
这是我到目前为止所拥有的:

#include<stdio.h>

int main()
{

//Declarations
int doll_amt;
int twentys;
int tens;
int fives;
int ones;

//Data/Input

//Output
printf("Enter a dollar amount: ");
scanf("%d", &doll_amt);
printf("Your dollar amount is: %d\n", doll_amt);

//Processing/Calculations
twentys = doll_amt / 20;
tens = (doll_amt / 20) % 10;
fives = (doll_amt /20) % 5;
ones = (doll_amt / 20) % 1;

printf("$20 bills: %d\n", twentys);
printf("$10 bills: %d\n", tens);
printf("$5 bills: %d\n", fives);
printf("$1 bills: %d\n", ones);

return 0;
}
基本上只是要求输入,将 doll_amt 除以 20 工作正常。它正在找到我遇到麻烦的其余 10、5 和 1。谢谢!

最佳答案

It's finding the remaining 10's, 5's and 1's that I am having trouble with.


减少 doll_amt每一步之后。不要求面额是倍数,只要最小的是 1。
//twentys = doll_amt / 20;
//tens = (doll_amt / 20) % 10;
//fives = (doll_amt /20) % 5;
//ones = (doll_amt / 20) % 1; // n%1 always results in 0

twentys = doll_amt / 20;
doll_amt %= 20;
tens = doll_amt / 10;
doll_amt %= 10;
fives = doll_amt / 5;
doll_amt %= 5;
ones = doll_amt;

关于c - 仅使用算术运算符将美元金额排序为 20/10/5/1(无循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63768812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com