| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1142 人关注过本帖
标题:新人,求教一个想不通的问题
只看楼主 加入收藏
bxe
Rank: 1
等 级:新手上路
帖 子:57
专家分:7
注 册:2019-3-21
结帖率:72.22%
收藏
已结贴  问题点数:20 回复次数:4 
新人,求教一个想不通的问题
如果我想使用if else进行判断 并输出文字
if(ch !=(1||2)) 是不是 ch不等于1或2的意思呢?
因为当键盘输入 ch为1时执行后续输出文字
为2时却输出了当前语句的文字。

// 练习3.1 华氏与摄氏温度数字显示转化
#include<stdio.h>

int main()
{
    char ch  = 0;    /* 功能选择*/
    float temperature = 0;  /*温度*/


    printf("\n功能选择:1.摄氏转换华氏 2.华氏转换摄氏\n");
    scanf("%ld",&ch);

    if(ch  !=(1||2))
      printf("\n请输入正确的选择数字.");

   else
   {
        printf("\n输入需要转换的温度:");
        scanf("%f",&temperature);
    }


     if (ch ==1)
        printf("\n摄氏 %.2f 度等于华氏 %.2f 度",temperature,temperature*1.8+32);

     if (ch ==2)
        printf("\n华氏 %.2f 度等于摄氏 %.2f 度",temperature,(temperature-32)*5/9);





    return 0;
}


预谢!
搜索更多相关主题的帖子: 输出 文字 等于 选择 printf 
2019-03-21 10:21
bxe
Rank: 1
等 级:新手上路
帖 子:57
专家分:7
注 册:2019-3-21
收藏
得分:0 
输入为2时,没有执行第一个else  反而执行了第一个if

请问,想要表达
 if(ch 不等于1或2 )
应该怎么写呢?


[此贴子已经被作者于2019-3-21 10:27编辑过]

2019-03-21 10:25
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:20 
if(ch  !=(1||2))
等同于
if( ch != 1 )
因为 1||2 的评估值是 true

if(ch 不等于1或2 )
应该写成
if( ch!=1 && ch!=2 )
即 ch不等于1 并且 ch不等于2
2019-03-21 11:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
另外
char ch  = 0;
scanf("%ld",&ch);
也是错的,%ld 后面应当接 long* 类型,而你传的是 char* 类型。

char 作字符值用,只能用 %c
如果作纯数值使用的话,那么应当加 signed 或 unsigned 修饰
如果是 signed char 的话,那就可以用 %hhd
如果是 unsigned char 的话,那就可以用 %hhu
这也就是为什么C语言规定 char、signed char、unsigned char 是三种不同类型的原因。
2019-03-21 11:14
bxe
Rank: 1
等 级:新手上路
帖 子:57
专家分:7
注 册:2019-3-21
收藏
得分:0 
以下是引用rjsp在2019-3-21 11:14:01的发言:

另外
也是错的,%ld 后面应当接 long* 类型,而你传的是 char* 类型。

char 作字符值用,只能用 %c
如果作纯数值使用的话,那么应当加 signed 或 unsigned 修饰
如果是 signed char 的话,那就可以用 %hhd
如果是 unsigned char 的话,那就可以用 %hhu
这也就是为什么C语言规定 char、signed char、unsigned char 是三种不同类型的原因。
谢谢大佬,问题解决了,还学到了之前忽略的部分!
2019-03-21 11:50
快速回复:新人,求教一个想不通的问题
数据加载中...
 
   



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

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