s5-9.某通讯公司包月套餐如下:
套餐 包月金额 套餐信息
1 28 200分钟
2 48 500分钟
3 68 800分钟
另有预存话费活动:存200元打300元(注:存200元打300元意思交200元现金计费系统自动当成存入300元),存300元打500元,存500打800。用户超出套餐使用量,每分钟0.25元。
要求:
输入套餐编号,当月实际通话时长和预存话费,求该用户当月剩余话费
#include<stdio.h>
int check(double &money) //check用来判断存入话费最终值
{
if (money>=200&&money<300) money+=100;
else if (money>=300&&money<500) money+=200;
else if (money>=500) money+=300;
else if (money<0) printf("预存话费输入值不合法");
else return 0;
return 1;
}
int main()
{
double money,time,rest;
int model,price,minute,Case=1;
printf("请输入你的套餐编号:");
scanf("%d",&model);
printf("请输入你的实际通话时长:");
scanf("%d",&time);
printf("请输入你的预存话费:");
scanf("%lf",&money);
switch(model)
{
case 1: price=28;minute=200; break;
case 2: price=48;minute=500; break;
case 3: price=68;minute=800; break;
default: Case==0;break;
}
if (Case) //判断套餐是否合法决定是否计算
{
if (check(money)) //判断预存话费是否合法决定是否计算
{
if (time-minute>=0) //判断通话时间是否溢出套餐时间
{
rest = money - (time-minute)*0.25 - price;
printf("当月剩余的话费:%.2lf",rest);
}
else printf("当月剩余的话费:%.2lf",money-price);
}
else printf("套餐编号错误");
}
}