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

2024-12-14 07:29:20
推荐回答(5个)
回答1:

现用 if 来回答

#include
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<<"的折扣"<
return 0;
}

下面是用switch的做法

#include
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<<"的折扣"<
return 0;
}

这个是用 ? : 做的

#include
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<<"的折扣"<
return 0;
}

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

回答2:

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

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:

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:

正在学 学会告诉你 X_P