作为我在C中创建的程序的一部分,我必须将一个名为“money”的双值除以十进制数(例如0.55,0.85,0.90等)。然后我想存储这个除法的值,并且只输出该除法的整数而不是余数。 例如,如果我做1.30 / 0.55那么真正的答案是2.363636 .. 但是我只想输出答案的2部分而不是剩下的部分。当我运行我的程序时,该分区的输出总是0.000000,我无法弄清楚为什么答案不正确。
#include <stdio.h>
int main( void )
{
char candy;
double money;
double quant;
scanf( "%c %lf", &candy, &money );
switch ( candy )
{
case 'a' :
quant = money / 0.55;
if ( quant >= 1 )
printf( "You selected Mars and have enough money to buy %1.lf bars", &quant );
else
printf( "You selected Mars, but, do not have enough money" );
break;
例如,当我输入1.40的钱时,我期待: “你选择了火星并且有足够的钱购买2个酒吧” 但实际输出是: “你选择了火星,并有足够的钱购买0.0000000棒”
我对C编程很陌生,所以任何帮助都将不胜感激! 非常感谢
答案 0 :(得分:1)
int quant = (int)(money / 0.55);
if ( quant >= 1 )
printf( "You selected Mars and have enough money to buy %d bars", quant );
这将删除小数点后的所有内容。如果你想强行向上或向下,你需要功能层和ceil