如何解决有人知道这段代码有什么问题吗?根本没用
我编写了这段代码,但根本无法正常工作
我希望我的解释很好
因此,我需要从“ for”循环中继续执行我遇到的最后一个条件。并在最后打印计数器编号
{
//to do math
float quarters = 0.25;
float dimes = 0.10;
float nickels = 0.5;
float pennies = 0.1;
//the number I need to transfer to 0
float n = 0.65;
//the counting number
int count = 0;
for (;;)
{
if (n >= quarters ) // -0.25
{
n = n - quarters;
count += 1;
return n ;
}
else if (n >= dimes) // -0.10
{
n = n - dimes;
count += 1;
return n ;
}
else if (n >= nickels) // 0.5
{
n = n - nickels;
count += 1;
return n ;
}
else if (n >= pennies) // 0.1
{
n = n - pennies;
count += 1;
return n ;
}
else //return the counting number
{
printf("%i",count);
break;
}
}
}
解决方法
请不要return n
,而要使用continue
-继续会告诉您的循环进行另一回合,这就是您想要在此处再次通过条件逻辑进行的操作。
return
终止了您的功能,因此您的程序在到达最终的else分支之前退出,在该分支中您将打印出计数器。
此外,我假设您的便士设置为0.1
,与一角硬币相同,并且应该设置为0.01
。
编辑:
根据问题下发布的Weather Vane的注释,由于0.01
在浮点数中的错误表示,因此最好使用整数来解决此问题。他已链接的SO问题:Why not use Double or Float to represent currency?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。