题目描述

小鱼很喜欢喝奶茶。最近新开了一家奶茶店,正在进行开业大酬宾活动,有两种优惠方式,方式1:打七折,方式2是立减五元,小鱼最爱喝的奶茶是杨枝甘露,有三种杯型,小杯(Small)12元,中杯(Middle)15元,大杯(Big)18元,同时甜度有三分甜、五分甜、七分甜和九分甜四种。每次购买可选择两种方式中的一种进行优惠。请秉持省钱的原则,得出小鱼每天的购买方案。同时计算每天的甜度摄入,中杯七分甜以上和大杯五分甜以上输出“so sweet”否则输出“good”

输入

连续输入七个随机的S或M或B;代表每天选择的杯型 以及一个数字3或5或7或9

输出

数字1-7(代表周一至周日),所选的优惠方式 1或2, 以及甜度评价(中间用空格隔开) ,最后输出总价

样例输入

B3        
S5
B3
B3
B7
B3
B3

样例输出

1 1 good
2 2 good
3 1 good
4 1 good
5 1 so sweet
6 1 good
7 1 good
82.6

提示

直接用cout进行输出

题解

很明显,这是一道C++基础练习题,水题一发。我的解决方法是设立一个结构体用于储存7天的奶茶杯量、甜度、所选优惠方式以及甜度评价,相关语句解释附在程序注释中。

#include<bits/stdc++.h>
using namespace std;
int n,sm,z,d,mo;
double x,y,s;
struct yl
{
    char c;//杯量
    int u,sw,f=0;//优惠方式,甜度,甜度评价
}a[10001];
int main()
{
    sm=12,z=15,d=18,n=7;//小杯价格,中杯价格,大杯价格,一周天数
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].c>>a[i].sw;//输入杯量、甜度
    }
    for(int i=1;i<=n;i++)
    {
        switch(a[i].c)//获取相应杯量奶茶价格
        {
            case 'S':mo=sm;break;
            case 'M':mo=z;break;
            case 'B':mo=d;break;
        }
        x=mo*0.7;//优惠方式一
        y=mo-5;//优惠方式二
        if(x>y)a[i].u=2,s+=y;//选择方式二并累加价格
        else a[i].u=1,s+=x;//选择方式一并累加价格
        if(a[i].c=='M'&&a[i].sw>=7)a[i].f=1;
        if(a[i].c=='B'&&a[i].sw>=5)a[i].f=1;//如果符合两条条件中任意一条则甜度超标
    }
    for(int i=1;i<=n;i++)
    {
        cout<<i<<' '<<a[i].u<<' ';//输出日期及优惠方式
        if(a[i].f==1)cout<<"so sweet"<<endl;//输出甜度超标的评价
        else cout<<"good"<<endl;//输出甜度合适的评价
    }
    cout<<s;//输出总价
}
最后修改:2021 年 08 月 16 日 03 : 16 PM
如果觉得我的文章对你有用,请随意赞赏