| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 559 人关注过本帖
标题:关于scanf的问题
取消只看楼主 加入收藏
吴小君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:198
注 册:2012-1-2
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
关于scanf的问题
刚开始学C语言,可能问题有点弱弱,请前辈指导。
我自己编了一个小程序玩的,可是出了点问题,找不出原因:
#include<stdio.h>
void main()
{
  char a;
  int b;
  printf("do you like c?");
  scanf("%c",&a);
  b=a=='y'||'Y'?1:0;
  if(b) printf("work harder!");
  else
  printf("why?");
 }
我运行时就不能出现why?的结果,但如果直接给b赋值为0就可以得到
搜索更多相关主题的帖子: harder C语言 
2012-01-03 12:44
吴小君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:198
注 册:2012-1-2
收藏
得分:0 
我看过一篇帖子,说是b=a=='y'||'Y'?1:0;是恒为逻辑真,感觉是这儿出了问题,但不知道为什么

小弟学习C语言刚入门,请大侠们多多指教,不吝赐解!
2012-01-03 12:49
吴小君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:198
注 册:2012-1-2
收藏
得分:0 
回复 3楼 lonmaor
它的优先级好像真有歧义诶,谢谢指导哈

[ 本帖最后由 吴小君 于 2012-1-3 13:44 编辑 ]

小弟学习C语言刚入门,请大侠们多多指教,不吝赐解!
2012-01-03 13:36
吴小君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:198
注 册:2012-1-2
收藏
得分:0 
回复 4楼 小蝦米
为什么它值恒为1啊?用&&的话它值理论上不是恒为0了吗?下面这个程序
#include<stdio.h>
void main()
{
 int year,leap;
 scanf("%d",&year);
 if(year%4==0&&year%100!=0||year%400==0) leap=1;
else leap=0;
 if(leap)
 printf("%d is",year);
 else
 printf("%d is not",year);
 printf(" a leap year\n");
   }
它不是就用||的吗?而且也能正常运行啊
请前辈给小弟细说一下吧,谢谢啦!

小弟学习C语言刚入门,请大侠们多多指教,不吝赐解!
2012-01-03 13:42
吴小君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:198
注 册:2012-1-2
收藏
得分:0 
回复 7楼 小蝦米
恩,谢谢哈,我懂了
我刚才试了试,要是把a=b=='y'||'Y'?1:0;改成a=b=='y'&&'Y'?1:0;的话,输入Y就不管用了
不过现在这个应该好用的

小弟学习C语言刚入门,请大侠们多多指教,不吝赐解!
2012-01-03 14:15
吴小君
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:198
注 册:2012-1-2
收藏
得分:0 
回复 9楼 小蝦米
恩,是的呢,后来我就把改成了a=b=='y'||b=='Y'?1:0;就好用了

小弟学习C语言刚入门,请大侠们多多指教,不吝赐解!
2012-01-03 14:38
快速回复:关于scanf的问题
数据加载中...
 
   



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

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