标题:这个题为什么不能是条件运算,而是选择结构?
只看楼主
忧郁的小桂圆
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2020-2-26
结帖率:0
已结贴  问题点数:20 回复次数:4 
这个题为什么不能是条件运算,而是选择结构?
例:为邮局工作人员编制计算邮费的小程序,输入邮件的重量,计算出该邮件的邮费,计算规则为,邮件重量小于50斤(包含50斤),每斤1.5元,超过50斤的部分按照每斤2元。
我编的是这样的
#include<stdio.h>
main()
{
    float a,b;
    printf("the weight is\n");
    scanf("%d",&a);
    (a<=50)?(b=1.5*a):(b=50*1.5+(a-50)*2);
    printf("the price is %d",b);
    return 0;
}
但是结果输出的是0,为什么?
搜索更多相关主题的帖子: 选择 计算 邮件 结构 运算 
2020-02-26 17:10
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:7 
因为你用了%d
应该用%f

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-02-26 18:19
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:0 
另外你尽管穿着条件运算的外衣,但是没有使用条件运算表达式的值,因此仍然是选择结构。
如果写作
b=1.5*a+(a>50)?(a-50)*0.5:0;
利用了条件表达式的值才算是你所说的条件运算。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-02-26 21:02
yu1776151787
Rank: 2
等 级:论坛游民
威 望:1
帖 子:13
专家分:22
注 册:2020-2-22
得分:7 
#include<stdio.h>
int main()
{
    float a,b;
    printf("the weight is\n");
    scanf("%f",&a);
    (a<=50)?(b=1.5*a):(b=50*1.5+(a-50)*2);
    printf("the price is %f",b);
    return 0;
}
//大佬,您看看int main和输入控制符那里%f改改就行得通😄
2020-03-01 14:24
hbccc
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:108
专家分:315
注 册:2020-2-18
得分:7 
前面定义的类型是float,所以scanf后面应该是%f,而不是%d
2020-03-02 21:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-499412-1-1.html




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

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