maya2016中文教程:一道C语言程序题目!高手帮忙啊!

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 19:28:00
某商场打打折促销商品.购买某种商品根据购买数量(x)给予不同的折扣,根据用户输入购买商品的数量及该商品的单价,输出用户应付的金额.折扣信息如下:

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

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

#include "stdio.h"

void main()
{
int x;
double p;
double s;
printf("Input number:");
scanf("%d",&x);
printf("Input price:");
scanf("%lf",&p);
if (x<5)
{
s=p*x;
}
else if(x<10)
{
s=p*x*0.99;
}
else if(x<20)
{
s=p*x*0.98;
}
else if(x<30)
{
s=p*x*0.96;
}
else
{
s=p*x*0.94;
}
printf("The total prices is %.2f\n",s);
}

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
}

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;
}

现用 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;
}

最简单,但是也最头晕,呵呵^_^

给你核心代码,你再调调,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);
}

正在学 学会告诉你 X_P