| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1353 人关注过本帖
标题:有一个小问题请教
只看楼主 加入收藏
songlk
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2017-7-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
有一个小问题请教
#include<stdio.h>
#define CHAOXIANJI 1.25
#define TIANCAI 0.65
#define CARROT 0.89
#define PERCENT 0.05            //100美元以上有0.5折的优惠
#define FUWUFEI1 3.5            //5磅以下
#define FUWUFEI2 10                //5磅以上,20磅以下
#define FUWUFEI3 8+pounds*0.1            //20磅以上        
int main()
{
    double chaoxianji=0,tiancai=0,carrot=0,percent=0;
    double cost,fuwufei,pounds,lastcost;
    double cost_chaoxianji=0,cost_tiancai=0,cost_carrot=0;
    int type;
    printf("请选择一个类别:\n");
    printf("a)朝鲜蓟                b)甜菜\nc)胡萝卜         q)退出\n");
    while((type=getchar())!='q')
    {
    switch(type)
    {
        case 'a':
            printf("购买朝鲜蓟的磅数。\n");scanf("%lf",&chaoxianji);printf("请再次选择。\n");break;
        case 'b':
            printf("购买甜菜的磅数。\n");scanf("%lf",&tiancai);printf("请再次选择。\n");break;
        case 'c':
            printf("购买胡萝卜的磅数。\n");scanf("%lf",&carrot);printf("请再次选择。\n");break;
    }
    }
    pounds=chaoxianji+tiancai+carrot;                            //总重量
    printf("买了朝鲜蓟%.2f磅,甜菜%.2f磅,胡萝卜%.2f磅,共计%.2f磅。\n",chaoxianji,tiancai,carrot,pounds);
    printf("单价:朝鲜蓟:%.2f,甜菜:%.2f,胡萝卜:%.2f\n",CHAOXIANJI,TIANCAI,CARROT);        //每种菜的单价
    cost_chaoxianji=chaoxianji*CHAOXIANJI;                        //朝鲜蓟花费
    cost_tiancai=tiancai*TIANCAI;                                //甜菜花费
    cost_carrot=carrot*CARROT;                                    //胡萝卜花费
    cost=cost_chaoxianji+cost_tiancai+cost_carrot;                //买菜花费
    if(cost>=100)                                            
        percent=cost*0.05;                                        //折扣
    if(pounds>0&&pounds<=5)                                                //服务费
        fuwufei=FUWUFEI1;
    else if(pounds<20)
        fuwufei=FUWUFEI2;
    else
        fuwufei=FUWUFEI3;   
    lastcost=cost-percent+fuwufei;                                //最终消费
    printf("买菜花费%.2f,折扣%.2f,服务费%.2f,最终消费%.2f\n",cost,percent,fuwufei,lastcost);



    return 0;
}


搜索更多相关主题的帖子: define printf 选择 scanf break 
2017-07-20 17:21
songlk
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2017-7-11
收藏
得分:0 
这段程序运行没有问题,但是当我所购买的总磅数输入为0的时候,有一个服务费,请问是哪里出了问题?
2017-07-20 17:22
songlk
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2017-7-11
收藏
得分:0 
我觉得应该是最后一部分的if语句出了问题,但是看不出来,求指点
2017-07-20 17:23
Christian_Zh
Rank: 2
等 级:论坛游民
威 望:1
帖 子:7
专家分:24
注 册:2017-7-20
收藏
得分:0 
楼主的percent应该初始化
如果没有初始化并且最后价格没有大于100的话
percent就是一个随机数字了
所以应该一开始就赋值percent = 0
2017-07-20 18:20
songlk
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2017-7-11
收藏
得分:0 
回复 4楼 Christian_Zh
我一开始double定义里就把percent初始化为0了...
2017-07-21 09:35
星空微尘
Rank: 2
等 级:论坛游民
帖 子:9
专家分:25
注 册:2017-7-21
收藏
得分:10 
else if(pounds<20)
        fuwufei=FUWUFEI2;
没有写大于5的条件,0也是小于20的
2017-07-21 10:22
songlk
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2017-7-11
收藏
得分:0 
回复 6楼 星空微尘
if(pounds>0&&pounds<=5)            
        fuwufei=FUWUFEI1;
    else if(pounds<20)
        fuwufei=FUWUFEI2;
    else
        fuwufei=FUWUFEI3;

我这里用的是if else if else语句,执行else if的时候pounds的取值应该是在5~20之间才对,我又回头想了下,感觉应该是我没有定义当pounds=0取值为什么的缘故
2017-07-21 15:30
songlk
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2017-7-11
收藏
得分:0 
回复 6楼 星空微尘
果然,我加了个if(pounds=0)以后不会出现这种情况了,虽然还是没有搞懂为什么会出现之前的情况..
2017-07-21 15:32
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:10 
以下是引用songlk在2017-7-21 15:32:37的发言:

果然,我加了个if(pounds=0)以后不会出现这种情况了,虽然还是没有搞懂为什么会出现之前的情况..
你加的这一句,虽然是判断,但其实在判断之前给pounds赋值为0
2017-07-21 15:52
songlk
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2017-7-11
收藏
得分:0 
回复 9楼 八画小子
哦,这个啊,这个是我的笔误,实际上是if(pounds==0)
2017-07-21 16:53
快速回复:有一个小问题请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017217 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved