(2023\5-25)2023年5月25日22:36:25
#include <stdlib.h>
#include <Windows.h>
#include <time.h>
#include <math.h>
#include <stdio.h>
/*
编程实现:用户输入商品编号购买(商品表里面的水果),用户购买玩后(提示询问)用户是否继续购买,这里“9”表示继续购买 ,“0”表示不在购买(不限制用户购买次数)。
*/
int main(void)
{
//商品价格表:
for (int i = 1; i <= 120; i++)
{
printf("*");
}
printf("\n");
printf("\t\t\t\t商品编号|\t\t商品名称|\t\t商品价格|\t\n");
printf("\t\t\t\t1\t|\t\t香蕉\t|\t\t10.0\t|\n");
printf("\t\t\t\t2\t|\t\t苹果\t|\t\t20.0\t|\n");
printf("\t\t\t\t3\t|\t\t火龙果\t|\t\t30.0\t|\n");
printf("\t\t\t\t4\t|\t\t哈密瓜\t|\t\t40.0\t|\n");
printf("\t\t\t\t5\t|\t\t榴莲\t|\t\t50.0\t|\n");
printf("\n");
for (int i = 1; i <= 120; i++)
{
printf("*");
}
printf("\n");
//功能实现 (在执行操作的时候,遇到小数 直接将和他操作的是定义为double)
int x;
printf("请输入您需要购买的商品编号:\n");
scanf_s("%d,\n",&x);
int number;//购买的数量
float s = 0.0;
switch (x)
{
case 1:
printf("请输入您需要购买的数量:\n");
scanf_s("%d,\n",&number);
s = number * 10.0;
break;
case 2:
printf("请输入您需要购买的数量:\n");
scanf_s("%d,\n",&number);
s = number * 20.0;
break;
case 3:
printf("请输入您需要购买的数量:\n");
scanf_s("%d,\n",&number);
s = number * 30.0;
break;
case 4:
printf("请输入您需要购买的数量:\n");
scanf_s("%d,\n",&number);
s = number * 40, 0;
break;
case 5:
printf("请输入您需要购买的数量:\n");
scanf_s("%d,\n",&number);
s = number * 50.0;
break;
}
//询问用户是否购买
printf("\n");
printf("您是否继续购买(是 请按“9”,否 请按“0”)\n");
int m;
int q = 0;//while入口
scanf_s("%d,\n",&m);
if (m == 9)
{
q = 1;
}
else if (m == 0)
{
q = 0;
}
//循环购买入口
float Y = 0.0; //统计循环中的购买累加金额
int bianhao; //商品编号
int shuliang; //购买数量
while (q)
{
printf("请输入您购买的商品编号:\n");
scanf_s("%d,\n",&bianhao);
switch (bianhao)
{
case 1:
printf("请输入您需要购买的数量:\n");
scanf_s("%d,\n",&shuliang);
Y += shuliang * 10.0;
break; //跳出Switch
case 2:
printf("请输入您需要购买的数量:\n");
scanf_s("%d,\n",&shuliang);
Y += shuliang * 20.0;
break;
case 3:
printf("请输入您需要购买的数量:\n");
scanf_s("%d,\n",&shuliang);
Y += shuliang * 30.0;
break;
case 4:
printf("请输入您需要购买的数量:\n");
scanf_s("%d,\n",&shuliang);
Y += shuliang * 40.0;
break;
case 5:
printf("请输入您需要购买的数量:\n");
scanf_s("%d,\n",&shuliang);
Y += shuliang * 50.0;
break;
}
int F;
printf("您是否继续购买商品(是 请按“9” 否 请按“0”)\n");
scanf_s("%d,\n", &F);
if (F == 9)
{
q = 1;
}
else if (F == 0)
{
q = 0;
}
}
float sum = 0.0;
sum = Y + s;
printf("您好!本次您购买总共消费了:%-4.2lf元\t(谢谢光顾,欢迎下次光顾!",sum);
return 0;
}
运行结果如下:
这道题目最主要的两个地方:
1、数据类型的定义以及嵌套问题;
2、就是难点(如何循环询问)用户,且做到结果功能的实现!
分析好,理解后写起来就非常容易哦!