写一个c语言简单点菜系统 只用到循环 数组
时间: 2023-12-23 07:02:26 浏览: 35
好的,这里是只用到循环和数组的C语言简单点菜系统的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 菜品结构体
struct dish {
char name[20]; // 菜名
float price; // 价格
};
// 菜单数组
struct dish menu[] = {
{"宫保鸡丁", 22.0},
{"鱼香肉丝", 20.0},
{"红烧肉", 18.0},
{"清蒸鲈鱼", 28.0},
{"糖醋排骨", 26.0},
{"蒸蛋", 8.0},
{"炒饭", 12.0},
{"炒面", 10.0},
{"牛肉面", 15.0},
{"烤鸭", 38.0},
{"水煮鱼", 32.0},
{"麻辣香锅", 30.0},
{"火锅", 35.0},
{"米饭", 2.0}
};
int main() {
int order[14] = {0}; // 用户点的菜品数量
float total = 0.0; // 总价
int choice; // 用户选择的菜品编号
int num; // 用户选择的菜品数量
// 打印菜单
printf("欢迎光临!请看菜单:\n");
for (int i = 0; i < 14; i++) {
printf("%d. %s\t%.1f元\n", i+1, menu[i].name, menu[i].price);
}
// 用户点菜
while (1) {
printf("请输入要点的菜品编号(输入0结束点菜):");
scanf("%d", &choice);
if (choice == 0) {
break;
}
if (choice < 0 || choice > 14) {
printf("输入有误,请重新输入!\n");
continue;
}
printf("请输入%s的数量:", menu[choice-1].name);
scanf("%d", &num);
if (num <= 0) {
printf("输入有误,请重新输入!\n");
continue;
}
order[choice-1] += num;
printf("%s %d份已点!\n", menu[choice-1].name, num);
}
// 计算总价
for (int i = 0; i < 14; i++) {
if (order[i] > 0) {
total += order[i] * menu[i].price;
}
}
// 结账
printf("您本次点菜总价为%.1f元,谢谢光临!\n", total);
return 0;
}
```
这个程序和上一个程序的主要区别在于使用了一个整型数组来存储用户点的菜品数量,而不是在结构体中直接存储。程序还是先打印菜单,然后让用户输入要点的菜品编号和数量,直到用户输入0结束点菜。程序会计算总价并打印结账信息。在计算总价时,程序会遍历整型数组并计算每个菜品的总价。