Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C &引用;新美元=美元+;美分/100“;不变_C - Fatal编程技术网

C &引用;新美元=美元+;美分/100“;不变

C &引用;新美元=美元+;美分/100“;不变,c,C,在输出中,new_$s总是显示美元数,所以我不知道如何解决这个问题。请帮我找出问题所在 int main(void) { int dollars, cents, count, new_dollars; for ( count = 1; count <= 10; ++count){ printf ("Enter dollars: "); scanf ("%i", &dollars); printf ("Enter c

在输出中,
new_$s
总是显示美元数,所以我不知道如何解决这个问题。请帮我找出问题所在

int main(void)
{
    int dollars, cents, count, new_dollars;

    for ( count = 1; count <= 10; ++count){
        printf ("Enter dollars: ");
        scanf ("%i", &dollars);

        printf ("Enter cents: ");
        scanf ("%i", &cents);

        if ( cents >= 100 ){
            cents = cents % 100;
            new_dollars = dollars + cents / 100;
            printf ("%i\n", new_dollars);
            printf ("$%i.%2i\n\n", new_dollars, cents);
        }
        else {        
            printf ("$%i.%2i\n\n", dollars, cents);
        }
    }

    return 0;
}
int main(无效)
{
整数美元、美分、计数、新美元;
用于(计数=1;计数=100){
美分=美分%100;
新美元=美元+美分/100;
printf(“%i\n”,新美元);
printf($%i.%2i\n\n),新币,美分);
}
否则{
printf(“$%i.%2i\n\n”,美元,美分);
}
}
返回0;
}

关于整数除法的评论是正确的。尝试此操作,它会将执行计算的两行顺序交换,因此当您需要时,
cents
仍将具有有用的值:

int main(void)
{
    int dollars, cents, count, new_dollars;

    for ( count = 1; count <= 10; ++count){
        printf ("Enter dollars: ");
        scanf ("%i", &dollars);

        printf ("Enter cents: ");
        scanf ("%i", &cents);

        if ( cents >= 100 ){
            new_dollars = dollars + cents / 100;
            cents = cents % 100;
            printf ("%i\n", new_dollars);
            printf ("$%i.%2i\n\n", new_dollars, cents);
        }
        else {        
            printf ("$%i.%2i\n\n", dollars, cents);
        }
    }

    return 0;
}
int main(无效)
{
整数美元、美分、计数、新美元;
用于(计数=1;计数=100){
新美元=美元+美分/100;
美分=美分%100;
printf(“%i\n”,新美元);
printf($%i.%2i\n\n),新币,美分);
}
否则{
printf(“$%i.%2i\n\n”,美元,美分);
}
}
返回0;
}
  • 将“整笔新美元”转换为“浮动新美元”

  • 新美元=(浮动)美元+(浮动)美分/100

  • printf(“$%.2f\n”,新美元)


  • cents/100
    始终为0,因为它是整数除法。你为什么还要添加它呢?按相反顺序
    cents=cents%100
    新美元=美元+美分/100次要:可能希望
    “$%i.%02i”
    “$%i.%2i”
    (添加
    0
    )当美分大于100时,我使用“美分/100”提取整数部分,并将其添加到美元。@Nikki
    美分在应用于自身的
    %
    操作后不能大于99。你需要用下面的行来交换它。嗨,阿拉斯泰尔·布朗,我按照你的指令尝试了代码。输入美元:4输入美分:300 7美元7。新美元的产出等于美元。没有变化。它看起来像“美分/100=0”。@Nikki您是否输入了
    300 7
    作为美分的值?请注意,您应该使用
    %.2i
    %02i
    (或
    %.2d
    等)作为美分,以确保1美元2美分打印为
    1.02
    ,而不是
    1。2
    。使用
    float
    可能适用于这个小程序,但通常处理小数的方法是错误的。如果你注意到我上面的评论,你已经很接近了。