c语言实现柠檬水找零
时间: 2023-11-25 18:08:19 浏览: 35
以下是C语言实现柠檬水找零的代码和解释:
```c
#include <stdio.h>
int lemonadeChange(int* bills, int billsSize){
int five = 0, ten = 0;
for (int i = 0; i < billsSize; i++) {
if (bills[i] == 5) {
five++;
} else if (bills[i] == 10) {
if (five == 0) {
return 0;
}
five--;
ten++;
} else {
if (five > 0 && ten > 0) {
five--;
ten--;
} else if (five >= 3) {
five -= 3;
} else {
return 0;
}
}
}
return 1;
}
int main() {
int bills[] = {5, 5, 10, 10, 20};
int billsSize = sizeof(bills) / sizeof(bills[0]);
int result = lemonadeChange(bills, billsSize);
printf("%d\n", result); // 输出:0
return 0;
}
```
解释:
该代码中的 `lemonadeChange` 函数接收一个整型数组 `bills` 和数组的大小 `billsSize`,并返回一个整型值。该函数的实现与引用中的解题思路相同,使用两个变量 `five` 和 `ten` 分别记录手中的五元和十元数量,然后根据不同的账单进行找零。如果无法找零,则返回 0,否则返回 1。
在 `main` 函数中,我们定义了一个整型数组 `bills`,并将其传递给 `lemonadeChange` 函数进行测试。在本例中,数组中的账单为 `{5, 5, 10, 10, 20}`,即顾客先购买两杯 5 美元的柠檬水,然后购买两杯 10 美元的柠檬水,最后购买一杯 20 美元的柠檬水。由于无法用手中的 5 美元和 10 美元找零 20 美元,因此该函数返回 0。