c - 如何打印 do while 循环执行的次数?
问题描述
我正在为 C 中的一家餐厅开发一个程序:
#include <stdlib.h>
#include <stdio.h>
#define CAPPUCCINO_PRICE 129.00
#define FILTERCOFFEE_PRICE 110.00
#define CAFELATTE_PRICE 128.00
#define ESPRESSO_PRICE 135.00
#define MACCHIATO_PRICE 137.00
#define CAFEMOCHA_PRICE 130.00
#define VANILLALATTE_PRICE 140.00
#define ASSAMTEA_PRICE 120.00
#define MASALACHAI_PRICE 120.00
#define GREENTEA_PRICE 126.00
#define LEMONADE_PRICE 147.00
#define COOLBLUE_PRICE 154.00
#define CAFEFRAPPE_PRICE 161.00
#define VEGANSHAKE_PRICE 198.00
#define COLDCOFFEE_PRICE 161.00
#define CRUNCHYFRAPPE_PRICE 155.00
#define TOFFEESMOOTHIE_PRICE 182.00
#define DETOXWATER_PRICE 127.00
#define BLUESPARKLER_PRICE 161.00
#define VIRGINMOJITO_PRICE 198.00
int main()
{
int choice = 0;
double totalPrice = 0;
printf("Welcome to delTaco restaurant!\n");
printf("May I take your order? \n\n");
do{
printf("Menu: \n\n");
printf("1. Cappuccino Rs %.2lf \n", CAPPUCCINO_PRICE);
printf("2. Filter Cofee Rs %.2lf \n", FILTERCOFFEE_PRICE);
printf("3. Cafe Latte Rs %.2lf \n", CAFELATTE_PRICE);
printf("4. Espresso Rs %.2lf \n", ESPRESSO_PRICE);
printf("5. Macchiato Rs %.2lf \n", MACCHIATO_PRICE);
printf("6. Cafe Mocha Rs %.2lf \n", CAFEMOCHA_PRICE);
printf("7. Vanilla Latte Rs %.2lf \n", VANILLALATTE_PRICE);
printf("8. Assam Tea Rs %.2lf \n", ASSAMTEA_PRICE);
printf("9. Masala Chai Rs %.2lf \n", MASALACHAI_PRICE);
printf("10. Green Tea Rs %.2lf \n", GREENTEA_PRICE);
printf("11. Lemonade Rs %.2lf \n", LEMONADE_PRICE);
printf("12. Cool Blue Rs %.2lf \n", COOLBLUE_PRICE);
printf("13. Cafe Frappe Rs %.2lf \n", CAFEFRAPPE_PRICE);
printf("14. Vegan Shake Rs %.2lf \n", VEGANSHAKE_PRICE);
printf("15. Cold Coffee Rs %.2lf \n", COLDCOFFEE_PRICE);
printf("16. Crunchy Frappe Rs %.2lf \n", CRUNCHYFRAPPE_PRICE);
printf("17. Toffee Smoothie Rs %.2lf \n", TOFFEESMOOTHIE_PRICE);
printf("18. Detox Water Rs %.2lf \n", DETOXWATER_PRICE);
printf("19. Blue Sparkler Rs %.2lf \n", BLUESPARKLER_PRICE);
printf("20. Virgin Mojito Rs %.2lf \n", VIRGINMOJITO_PRICE);
printf("21. Exit\n\n");
printf("Enter an item: ");
scanf("%i", &choice);
switch(choice){
case 1:
totalPrice += CAPPUCCINO_PRICE;
break;
case 2:
totalPrice += FILTERCOFFEE_PRICE;
break;
case 3:
totalPrice += CAFELATTE_PRICE;
break;
case 4:
totalPrice += ESPRESSO_PRICE;
break;
case 5:
totalPrice += MACCHIATO_PRICE;
break;
case 6:
totalPrice += CAFEMOCHA_PRICE;
break;
case 7:
totalPrice += VANILLALATTE_PRICE;
break;
case 8:
totalPrice += ASSAMTEA_PRICE;
break;
case 9:
totalPrice += MASALACHAI_PRICE;
break;
case 10:
totalPrice += GREENTEA_PRICE;
break;
case 11:
totalPrice += LEMONADE_PRICE;
break;
case 12:
totalPrice += COOLBLUE_PRICE;
break;
case 13:
totalPrice += CAFEFRAPPE_PRICE;
break;
case 14:
totalPrice += VEGANSHAKE_PRICE;
break;
case 15:
totalPrice += COLDCOFFEE_PRICE;
break;
case 16:
totalPrice += CRUNCHYFRAPPE_PRICE;
break;
case 17:
totalPrice += TOFFEESMOOTHIE_PRICE;
break;
case 18:
totalPrice += DETOXWATER_PRICE;
break;
case 19:
totalPrice += BLUESPARKLER_PRICE;
break;
case 20:
totalPrice += VIRGINMOJITO_PRICE;
break;
case 21:
printf("Than you for ordering at delTaco Restaurant! \n");
break;
default:
printf("*** Error: This is not on the menu. \n");
break;
}
printf("Total so far: Rs %.2lf\n\n", totalPrice);
} while (choice != 21);
printf("Your order is Rs %.2lf \n\n", totalPrice);
printf("Thank you for coming to delTaco Restaurant.\n");
printf("Have a nice day!.\n\n");
system("pause");
return 0;
}
用户必须输入定义给食品的数字,一旦按下回车,就会显示食品的总金额,但不显示所选项目的数量,
我怎样才能做到这一点?
解决方案
像这样的事情应该这样做。
改变
do{
printf("Menu: \n\n");
至
int items_in_order = 0;
do{
++items_in_order;
printf("Menu: \n\n");
并改变这个
case 21:
printf("Than you for ordering at delTaco Restaurant! \n");
break;
default:
printf("*** Error: This is not on the menu. \n");
break;
}
printf("Total so far: Rs %.2lf\n\n", totalPrice);
至
case 21:
printf("Than you for ordering at delTaco Restaurant! \n");
--items_in_order;
break;
default:
printf("*** Error: This is not on the menu. \n");
--items_in_order;
break;
}
printf("Total so far: Rs %.2lf\n\n", totalPrice);
printf("No. of items far: %d\n\n", items_in_order);
推荐阅读
- amazon-web-services - 如何在 Aws S3 java sdk 中导入“XferMgrProgress”
- javascript - 如何在 Angular 下制作动态 Clarity 上下文菜单(下拉菜单)?
- parallel-processing - Chapel 中分散子阵列的高效收集和传输
- java - 使用 Java 从 DOC 文件中提取嵌入式 ZIP
- go - 如何 fmt.Printf("%b",...) 但指定位数?
- docker - 启动 POD 时获取 ImagePullBackOff 是 AWS EKS
- python - 我将计数设置为 500 但 tweepy.cursor 仅返回 276 条推文,我如何获得 1000 多条推文?
- angular - 如何从一个组件获取值或数组到另一个组件而不以角度 8 存储在本地存储中
- c# - 初始化要并行执行的任务列表(对于 Task.WhenAll)的正确方法是什么?
- python - Pygame不能在Y轴上射击