多分支复习

某网上购物网站对用户实行优惠,买家购物货款p越多,则折扣越多。

标准如下:

p<100元         没有折扣

100元≤p<200元       5%折扣

200元≤p<500元  8%折扣

500元≤p<1000元          10%折扣

1000元≤p               15%折扣



【提示】:从题意可以看出,折扣的变化是有规律的。当购物金额达到“100元”的2倍、5倍、10倍时,折扣值就会发生变化。假如一个变量c代表100的倍数,则当c<1时,无折扣;当1≤c<2时,折扣d=5%;当2≤c<5时,折扣d=8%;当5≤c<10时,折扣d=10%;当10≤c时,折扣d=15%。

注:程序中与价格相关的数据类型为float

程序运行结果示例1:


Input payment:90↙

price = 90.0

程序运行结果示例2:



Input payment:100↙

price = 95.0


程序运行结果示例3:



Input payment:300↙

price = 276.0

程序运行结果示例4:




Input payment:1000↙

price = 850.0



程序运行结果示例5:




Input payment:650.5↙

price = 585.5

输入提示:"Input payment:"

输入格式: "%f" 

输出格式:"price = %.1f\n"  (注:等号左右均有空格)
#include <stdio.h>
#include <math.h>
float PRICE(float money,int n);
int main()
{
    int n;
	float money,ret;
    printf("Input payment:");
    scanf("%f",&money);
	n=(int)money/100;
    ret=PRICE(money,n);
	printf("price = %.1f\n",ret);
	return 0;
}
float PRICE(float money,int n)
{
	float ret;
	switch(n)
	{
	case 0:
		return money;
		break;
	case 1:
		ret=money*0.95;
		return ret;
		break;
	case 2:
	case 3:
	case 4:
		ret=money *0.92;
		return ret;
		break;
	case 5:
	case 6:
    case 7:
	case 8:
	case 9:
		ret=money*0.9;
		return ret;
		break;
	default:
		ret=money*0.85;
		return ret;
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_43759910/article/details/85285033