如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个银西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。 输入 输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut,其间用 1 个空格分隔。这里 Galleon 是 [0, 107] 区间内的整数,Sickle 是 [0, 17) 区间内的整数,Knut 是 [0, 29) 区间内的整数。 输出 在一行中用与输入同样的格式输出哈利应该被找的零钱。如果他没带够钱,那么输出的应该是负数。用c语言
时间: 2024-04-14 12:30:21 浏览: 133
技术路线大改变 海格新能源客车风头正劲——海格ISG混联系统新能源客车后来居上.pdf
下面是一个用C语言编写的程序,用于计算哈利应该被找的零钱:
```c
#include <stdio.h>
int main() {
int pg, ps, pk; // 应付的价钱 P
int ag, as, ak; // 实付的钱 A
// 输入应付的价钱和实付的钱
scanf("%d.%d.%d %d.%d.%d", &pg, &ps, &pk, &ag, &as, &ak);
// 计算应该被找的零钱
int total_paid = (ag * 17 + as) * 29 + ak; // 实付的总价值
int total_price = (pg * 17 + ps) * 29 + pk; // 应付的总价值
int change = total_paid - total_price; // 零钱
// 输出找零的金额
if (change < 0) {
printf("-%d.%d.%d", -change / 493, (-change % 493) / 29, (-change % 493) % 29);
} else {
printf("%d.%d.%d", change / 493, (change % 493) / 29, (change % 493) % 29);
}
return 0;
}
```
注意:这段代码假设输入是合法的,即实付的钱大于或等于应付的价钱。如果输入不合法,代码可能会产生错误或不正确的输出。在实际应用中,我们应该添加错误处理代码来处理输入错误的情况。
阅读全文