C 中变量操作的错误结果

卡米拉

我正在尝试编写此代码:

#include <stdio.h>
#include <cs50.h>
#include <math.h>

int main(void)
{
    float input;
    int quarters, cdimes, ldimes, nickels, pennies, left = 0, overleft, overleft2 = 0;
   
    do
    {
        input = get_float("Enter a positive value between 0 and 1: ");
    }
    while (input <= 0);
    int cents = round(input * 100);
    
    if (cents >= 25)
    {
        quarters = cents/25;
        **left = cents-(quarters*25);**
        printf ("Number of quarters is %i and the money left is %i", quarters, left);
    }
   else if (cents >= 10)
   {
        cdimes = cents/10; 
        **overleft2 = cents-cdimes*10;**
        printf ("Number of cdimes is %i and overleft2 is %i", cdimes, overleft2);
   }

         if (left >= 10)
        {   
        ldimes = left/10;
        overleft = left - ldimes*10;
        printf ("Number of ldimes is %i. Over left is %i", ldimes, overleft);
        }

但在突出显示的部分,程序给了我错误的值。例如,当我输入数字 0.6 时,程序乘以 100 并取整(所以现在我有数字 60)。因为 60 大于 25,所以它转到第一个 if 子句。但是,当我想减去用户输入的四分之一时,它没有给出正确的值。我能做什么?

chux - 恢复莫妮卡

丢弃left,只需使用cents.

// left = cents-(quarters*25);
cents %= 25;

删除else以检查四分之一一角硬币。

// else if (cents >= 10)
if (cents >= 10)

可能还有其他问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章