C语言编程题:话费套餐问题

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("套餐编号错误"); 
	}
} 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值