我正在试图创建一段代码,将一组金额的钱划分为他们最大的钞票组成部分.假设INPUT=1200,代码将打印"[2]500张钞票,[1]200张钞票".
然而,使用所述输入,代码将打印"[2]500张钞票,[2]100张钞票".如果我添加一个printf("%d",i);来查看在循环中i值是如何变化的,它是否以一种看似随机的方式执行;它还取决于给定的输入吗?为什么?! 我想不通为什么会发生这种事.
Code个
#include <stdio.h>
#include <math.h>
int main()
{
float Input;
scanf("%f",&Input);
int SizeBilletes[7] = {500,200,100,50,20,10,5};
for(int i=0;i<7;i++){
if(Input/SizeBilletes[i]>1){
int a = floor(Input/SizeBilletes[i]);
Input -= a*SizeBilletes[i];
printf("[%d] en Billetes de %d\n",a,SizeBilletes[i]);
}
}
}
Important Notes:个
- 输入必须是浮点数,因为用户可能会添加一个不是整数的值(如美分或便士)
- 如果不是循环,而是使用大量的if语句来单独计算每个大小,它就像一个咒语
- 使用"input%=SizeBill[i]"会给我一个错误(这是一个关于discord社区的解决方案)
- 我是very个新的编程,所以如果这是一个很简单的问题,提前道歉.