杯具了!

budongC 2010-06-08 12:30:25


#include "stdio.h"
int main()
{
int a,b,c;
printf("请输入任意两个数:");
scanf("%d %d",&a,&b);
(a>b)?c==a:c==b;
printf("%d",c);
getchar();
return 0;
}



用Code::Blocks 是能编译通过,但结果是错误的。怎么回事,还望高人指点一下。
...全文
79 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
stein42 2010-06-18
  • 打赏
  • 举报
回复
?:比=的优先级高吧!
budongC 2010-06-09
  • 打赏
  • 举报
回复
从左向右
brookmill 2010-06-08
  • 打赏
  • 举报
回复
汗……
刚去查了一下 :?的优先级非常低,
(a>b)?c=a:c=b; 由于=比:?优先级高,这一行不知道被编译器解释成什么了。
budongC 2010-06-08
  • 打赏
  • 举报
回复
结贴了,感谢3,4楼。
budongC 2010-06-08
  • 打赏
  • 举报
回复
谢谢3楼
budongC 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happytang 的回复:]
c==a:c==b;
兄弟,==和=要区分啊
[/Quote]

去掉一个等号就提示错误了。
happytang 2010-06-08
  • 打赏
  • 举报
回复
最好写成
c = (a>b)?a:b;
brookmill 2010-06-08
  • 打赏
  • 举报
回复
(a>b)?c=a:c=b;
更好的写法是
c = (a>b) ? a : b;

happytang 2010-06-08
  • 打赏
  • 举报
回复
c==a:c==b;
兄弟,==和=要区分啊

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧