当前位置: 代码迷 >> C语言 >> [求助]作业。根据用户输入的购买数量给予不同的折扣,输出应付金额
  详细解决方案

[求助]作业。根据用户输入的购买数量给予不同的折扣,输出应付金额

热度:216   发布时间:2007-08-10 15:47:25.0
[求助]作业。根据用户输入的购买数量给予不同的折扣,输出应付金额
#include <stdio.h>
void main()
{
int amount,x;
float dj;
double rate;
printf("请你输入商品的数量,商品的单价:,\n");
scanf("%d%d%f%lf",&amount,&x,&dj,&rate);
if (x<5){
rate=0;
printf("\n %d*%f=%f",amount,dj,amount*dj);
}else if ((x>=5)&&(x<10)){
rate=0.01;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}else if ((x>=10)&&(x<20)){
rate=0.02;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}else if ((x>=20)&&(x<30)){
rate=0.04;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}else {
rate=0.06;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}

}




某商场打折促销商品,购买某种商品根据购买数量给予不同的折扣,根据用户输入的购买商品的数量及该商品的单价,输出用户应付的金额

不知道是不是算法不对.
程序编译没有问题..但是就是按CTRL+F5程序还是不能够计算
就给我输入两个数字后就没有反映,
搜索更多相关的解决方案: amount  rate  折扣  

----------------解决方案--------------------------------------------------------
以下是引用绿色沙洲在2007-8-10 15:47:25的发言:
#include <stdio.h>
void main()---------------------用int
{
int amount,x;
float dj;
double rate;
printf("请你输入商品的数量,商品的单价:,\n");
scanf("%d%d%f%lf",&amount,&x,&dj,&rate);
if (x<5){
rate=0;
printf("\n %d*%f=%f",amount,dj,amount*dj);
}else if ((x>=5)&&(x<10)){-------------------||以下都个成或!
rate=0.01;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}else if ((x>=10)&&(x<20)){
rate=0.02;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}else if ((x>=20)&&(x<30)){
rate=0.04;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}else {
rate=0.06;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}

}




某商场打折促销商品,购买某种商品根据购买数量给予不同的折扣,根据用户输入的购买商品的数量及该商品的单价,输出用户应付的金额

不知道是不是算法不对.
程序编译没有问题..但是就是按CTRL+F5程序还是不能够计算
就给我输入两个数字后就没有反映,


----------------解决方案--------------------------------------------------------

以下是引用viky2003在2007-8-10 15:50:05的发言:

搞错了,不好意思!!我再看看


----------------解决方案--------------------------------------------------------
以下是引用绿色沙洲在2007-8-10 15:47:25的发言:
#include <stdio.h>
void main()----------------------int
{
int amount,x;
float dj;
double rate;
printf("请你输入商品的数量,商品的单价:,\n");
scanf("%d%d%f%lf",&amount,&x,&dj,&rate);-----------不需要输入rate
if (x<5){
rate=0;
printf("\n %d*%f=%f",amount,dj,amount*dj);
}else if ((x>=5)&&(x<10)){
rate=0.01;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);------%d*%f*%lf应该是%lf吧!!
}else if ((x>=10)&&(x<20)){
rate=0.02;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}else if ((x>=20)&&(x<30)){
rate=0.04;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}else {
rate=0.06;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}
----------------------------------------------------------return 0;
}




某商场打折促销商品,购买某种商品根据购买数量给予不同的折扣,根据用户输入的购买商品的数量及该商品的单价,输出用户应付的金额

不知道是不是算法不对.
程序编译没有问题..但是就是按CTRL+F5程序还是不能够计算
就给我输入两个数字后就没有反映,


----------------解决方案--------------------------------------------------------

是这个么?????


----------------解决方案--------------------------------------------------------
第一我的作业上括号本来就有的,可能没有复制上来.不好意思
第二.我把rate dele了
第三我把等于号后面的改成了%lf
最后,题目的要求是
x<5
5<=x<10
10<=x<20
20<=x<30
30<=x
所以是不是不能改成或啊


最后还是不对啊
----------------解决方案--------------------------------------------------------
以下是引用绿色沙洲在2007-8-10 15:47:25的发言:
#include <stdio.h>
void main()
{
int amount,x;
float dj;
double rate;
printf("请你输入商品的数量,商品的单价:,\n");
scanf("%d%d%f%lf",&amount,&x,&dj,&rate);
if (x<5){
rate=0;
printf("\n %d*%f=%f",amount,dj,amount*dj);
}else if ((x>=5)&&(x<10)){
rate=0.01;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);--------------------四个%,当时只有三个参数
}else if ((x>=10)&&(x<20)){
rate=0.02;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);--------同上
}else if ((x>=20)&&(x<30)){
rate=0.04;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}else {
rate=0.06;
printf("\n %d*%f*%lf=%f",amount,dj,amount*dj*rate);
}

}




某商场打折促销商品,购买某种商品根据购买数量给予不同的折扣,根据用户输入的购买商品的数量及该商品的单价,输出用户应付的金额

不知道是不是算法不对.
程序编译没有问题..但是就是按CTRL+F5程序还是不能够计算
就给我输入两个数字后就没有反映,

还有就是amount*dj*rate的数据类型,你最好和前面的匹配!!用(double)强制转化一下吧!!


----------------解决方案--------------------------------------------------------
[CODE]#include<stdio.h>
void main()
{
float a;
int c;
printf("本商场甩卖商品,要抢乘现在!\n");
printf("输入您购买的数量和应付的价格:");
scanf("%d%f",&c,&a);
if(c>5)
{
if(c<10)
printf("购买的数量是%d,享受1折的优惠,应付%.2f\n",c,a-a*0.01);
else if(c<20)
printf("购买的数量是%d,享受2折的优惠,应付%.2f\n",c,a-a*0.02);
else if(c<30)
printf("购买的数量是%d,享受2折的优惠,应付%.2f\n",c,a-a*0.04);
else
printf("购买的数量是%d,享受6折的优惠,应付%.2f\n",c,a-a*0.06);
}
else
printf("购买的数量是%d,不享受优惠,应付%.2f\n",c,a);
}[/CODE]

这样应该简单点吧。。。跟我们书上的题目一样。。。难道是我们班上的MM?
----------------解决方案--------------------------------------------------------
貌似楼上的对你们班的MM很 ....
----------------解决方案--------------------------------------------------------
谢谢  Maltase  他的答案是对的
----------------解决方案--------------------------------------------------------
  相关解决方案