一道C语言程序题目!高手帮忙啊!

某商场打打折促销商品.购买某种商品根据购买数量(x)给予不同的折扣,根据用户输入购买商品的数量及该商品的单价,输出用户应付的金额.折扣信息如下:

______
数量 |
-----
X<5
5=<X<10
10=<X<20
20=<X<30
30=<X
---------
折扣情况|
---------
不打折
1%折扣
2%折扣
4%折扣
6%折扣
-----------

需要用到多重if结构或者switch结构!

第1个回答  2006-08-01
现用 if 来回答

#include <iostream>
using namespace std;

int main()
{
int n;
float money,per;

cout<<"请输入商品的单价:";
cin>>money;
cout<<"您要购买几个呢?请输入个数:";
cin>>n;

if (n<5) per=1;
else if (n<10) per=0.99;
else if (n<20) per=0.98;
else if (n<30) per=0.96;
else per=0.94;

cout<<"您一共打了"<<1-per<<"的折扣"<<endl<<"需要支出"<<money*n*per<<"元"<<endl;

return 0;
}

下面是用switch的做法

#include <iostream>
using namespace std;

int main()
{
int n;
float money,per;

cout<<"请输入商品的单价:";
cin>>money;
cout<<"您要购买几个呢?请输入个数:";
cin>>n;

switch (n/5)
{
case 0: per=1;break;
case 1: per=0.99;break;
case 2:
case 3: per=0.98;break;
case 4:
case 5: per=0.96;break;
default: per=0.94;
}

cout<<"您一共打了"<<1-per<<"的折扣"<<endl<<"需要支出"<<money*n*per<<"元"<<endl;

return 0;
}

这个是用 ? : 做的

#include <iostream>
using namespace std;

int main()
{
int n;
float money,per;

cout<<"请输入商品的单价:";
cin>>money;
cout<<"您要购买几个呢?请输入个数:";
cin>>n;

per=( n<5 ? 1 : (n<10 ? 0.99 : (n<20 ? 0.98 : (n<30 ? 0.96 : 0.94) ) ) );

cout<<"您一共打了"<<1-per<<"的折扣"<<endl<<"需要支出"<<money*n*per<<"元"<<endl;

return 0;
}

最简单,但是也最头晕,呵呵^_^
第2个回答  2006-08-01
给你核心代码,你再调调,y为单价

switch (x/5)
{
case 0:printf("%lf",x*y);break;
case 1:printf("%lf",x*y*0.99);break;
case 2:
case 3:printf("%lf",x*y*0.98);break;
case 4:
case 5:printf("%lf",x*y*0.96);break;
default:printf("%lf",x*y*0.94);
}
第3个回答  2006-08-01
int iNum;/*购买数量*/
int iPay;/*购买费用*/
int iPrice;/*商品单价*/

if (iNum >= 30)
{
iPay = iPrice*iNum*(1-6%);
}
else if (iNum >=20)
{
iPay = iPrice*iNum*(1-4%);
}
else if (iNum >=10)
{
iPay = iPrice*iNum*(1-2%);
}
else if (iNum >=5)
{
iPay = iPrice*iNum*(1-1%);
}
else
{
iPay = iPrice*iNum
}
第4个回答  2006-08-01
total=x*price;
switch(x)
{
case <5:
break;
case <10:
total*=0.99;
break;
case <20:
total*=0.98;
break;
case <30:
total*=0.96;
break;
defult:
total*=0.94;
break;
}
第5个回答  2006-08-01
正在学 学会告诉你 X_P
相似回答