C语言编程实现售货机软件若投入1.5元硬币,按"可乐","雪碧","红茶"按钮,送出相应的饮料;若投入的时2元硬币,在送出饮料的同时退还5角硬币。
时间: 2023-07-07 22:25:07 浏览: 176
以下是一个简单的 C 语言代码实现:
```c
#include <stdio.h>
int main() {
// 定义饮料和价格数组
char drinks[3][10] = {"可乐", "雪碧", "红茶"};
float prices[3] = {1.5, 1.5, 1.5};
// 定义硬币面值数组
float coins[3] = {0.5, 1, 2};
// 初始化投入的硬币数量
float coins_inserted = 0;
while (1) {
// 显示菜单和投入的硬币数量
printf("====== 售货机 ======\n");
printf("可选饮料: \n");
for (int i = 0; i < 3; i++) {
printf("%s (%.1f元)\n", drinks[i], prices[i]);
}
printf("投入的硬币数量: %.1f元\n", coins_inserted);
printf("====================\n");
// 获取用户输入
char selection[10];
printf("请选择饮料,或者投入硬币: ");
scanf("%s", &selection);
// 处理用户选择饮料的情况
int selected_drink = -1;
for (int i = 0; i < 3; i++) {
if (strcmp(selection, drinks[i]) == 0) {
selected_drink = i;
break;
}
}
if (selected_drink >= 0) {
float price = prices[selected_drink];
if (coins_inserted >= price) {
printf("你选择了%s,请取走你的饮料。\n", drinks[selected_drink]);
coins_inserted = coins_inserted - price;
} else {
printf("硬币不足,请投入更多的硬币。\n");
}
}
// 处理用户投入硬币的情况
int selected_coin = -1;
for (int i = 0; i < 3; i++) {
if (coins[i] == atof(selection)) {
selected_coin = i;
break;
}
}
if (selected_coin >= 0) {
coins_inserted = coins_inserted + coins[selected_coin];
if (coins_inserted >= 2) {
printf("找零5角。\n");
coins_inserted = coins_inserted - 2.5;
}
}
// 处理无效输入的情况
if (selected_drink < 0 && selected_coin < 0) {
printf("无效的选择,请重新输入。\n");
}
}
return 0;
}
```
这个程序也会不断循环,直到用户手动中断或者关闭程序窗口。它显示一个简单的菜单,让用户选择饮料或者投入硬币。如果用户选择饮料但是硬币不足,程序会提示用户投入更多的硬币。如果用户投入2元硬币,程序会自动找零5角。注意,C 语言中字符串比较需要使用 `strcmp` 函数,而将字符串转换为浮点数需要使用 `atof` 函数。
阅读全文