【发布时间】:2020-02-23 18:59:28
【问题描述】:
问题链接:https://www.codechef.com/problems/HS08TEST
说明
Pooja 想从 ATM 取款 X 美元。取款机只接受X为5的倍数,且Pooja账户余额有足够现金进行取款交易(包括银行手续费)的交易。对于每次成功取款,银行收取 0.50 美元的费用。尝试交易后计算 Pooja 的账户余额。
输入
正整数 0
非负数 0
输出
在尝试交易后输出帐户余额,以具有两位精度的数字形式给出。如果账户里没有足够的钱来完成交易,输出当前的银行余额。
示例 - 成功交易
输入: 30 120.00
输出: 89.50
示例 - 取款金额不正确(不是 5 的倍数)
输入: 42 120.00
输出: 120.00
示例 - 资金不足
输入: 300 120.00
输出: 120.00
当我在事务函数中更改参数时,我无法找到任何不正确的输出,但由于一些我无法找到的错误,我仍然无法成功提交。这是我第一次尝试使用 codechef 或者实际上是任何有竞争力的编程,所以任何帮助都将不胜感激。这是我的代码:
#define count 0.5
float transaction(int , float);
int main(void)
{
float transaction(int x, float acc_bal)
{
float z=acc_bal-(x+count);
if(x<acc_bal)
{
if(x%5==0)
{
printf("%.2f",z);
}
}
if(x%5!=0)
{
printf("%0.2f",acc_bal);
}
}
transaction(42,120.00);
}
【问题讨论】:
-
您添加的链接不是公共访问。也许您应该在这里总结网站上的问题,以便我们了解您要做什么?
-
@Martin 那是提交页面。
-
@molbdnilo 是的,如果编译器支持函数中的函数。有些会,但不是全部。
-
您的第一步应该是用标准 C 编写,而不是使用时髦的编译器特定的扩展。
-
我建议您注意不精确的值。浮点值不能精确存储一些十进制值,例如
0.1和0.01,因此有些人建议将整数用于currency problems。
标签: c