分层票价问题

某航空公司规定:在旅游旺季(4、5、9、10月), 如果订票数量20张及以上,则优惠20%,20张以下,则优惠10%;在旅游淡季(1-3、6-8、11、12月),如果订票数量20张及以上,则优惠40%,20张以下,则优惠20%。编写程序,计算机票总价格。机票单价、订票时间、订票数量由键盘输入。

#include<stdio.h>
#include<stdlib.h>

double amount (double unitPrice, int month, int number); //总价计算 
void season (int month);       //判断是否是旺季 
double discount[2] = { 0.2, 0.4 };  // 折扣初始化为淡季值 

int main(int argc, char const *argv[])
{
    //初始化 
	double unitPrice = 0;
	int month = 0;
	int number = 0;
	
	//输入
	printf("请输入机票单价、订票时间、订票数量:");
	scanf("%lf%d%d",&unitPrice, &month, &number );
	
	//判断与输出 
	if(unitPrice>0 && month>=1 && month<=12 && number>=0 ){
		printf("机票总价格为:%g元.。\n", amount(unitPrice, month, number));
	} 
	else{
		printf("输入数据有误。\n");
	}
	
	system("pause");
	return 0; 
}

double amount (double unitPrice, int month, int number)
{	
    season(month);
	int i;
	double amount = 0;
	
	if(number<20){
		i = 0;
	}
	else{
		i = 1;
	}
	
	amount = unitPrice * (1 - discount[i]) * number;
	
	return amount;
	
}

void season (int month)
{
	int busy;
	
	switch (month) {
	case 1: busy = 0; break;
	case 2: busy = 0; break;
	case 3: busy = 0; break;
	case 4: busy = 1; break;
	case 5: busy = 1; break;
	case 6: busy = 0; break;
	case 7: busy = 0; break;
	case 8: busy = 0; break;
	case 9: busy = 1; break;
	case 10: busy = 1; break;
	case 11: busy = 0; break;
	case 12: busy = 0; break;
	}
	
	if(busy){
		discount[0] = 0.1;
		discount[1] = 0.2;
	}	
}
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值