| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 412 人关注过本帖
标题:问大家一个关于C语言的小问题
只看楼主 加入收藏
hacker梦魇
Rank: 2
等 级:论坛游民
帖 子:40
专家分:42
注 册:2015-10-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
问大家一个关于C语言的小问题
#include<stdio.h>
void main()
{int a;
  printf("input integer number:");
  scanf("%d",&a);
  switch(a>1?2:3)
  {
    case 1:printf("Monday\n");break;
    case 2:printf("Tuesday\n");break;
    case 3:printf("Wednesday\n");break;
    case 4:printf("Thursday\n");break;
    case 5:printf("Friday\n");break;
    case 6:printf("Saturday\n");break;
    case 7:printf("Sunday\n");break;
    default:printf("error\n");
 }
 getch();
}
我用WIN-TC大于7以上的数都会输出Tuesday,我不懂的是switch(a>1?2:3)这个是怎么算的?
搜索更多相关主题的帖子: default include number C语言 
2015-11-10 22:24
lzl123321
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:41
专家分:148
注 册:2015-10-15
收藏
得分:10 
(a>1?2:3)
三目运算符,a?b:c的意思是:
if: a
    b
else
    c

你的意思是输入3,4,5,6,7不会输出tuesday么?



[此贴子已经被作者于2015-11-10 22:44编辑过]

2015-11-10 22:40
蓝色风暴cl
Rank: 8Rank: 8
来 自:新疆
等 级:蝙蝠侠
威 望:3
帖 子:163
专家分:704
注 册:2015-9-6
收藏
得分:10 
楼上正解。

欢迎大家加好友哦,多找我聊聊吧!
2015-11-10 22:50
hacker梦魇
Rank: 2
等 级:论坛游民
帖 子:40
专家分:42
注 册:2015-10-29
收藏
得分:0 
回复 2楼 lzl123321
3 4 5 6 7 是输出Tuesday,可我不知道的是怎么算出来的呢?
2015-11-10 23:19
lzl123321
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:41
专家分:148
注 册:2015-10-15
收藏
得分:0 
以下是引用hacker梦魇在2015-11-10 23:19:24的发言:

3 4 5 6 7 是输出Tuesday,可我不知道的是怎么算出来的呢?

那就是了,只要大于一,判断都返回2, switch转2, 也就是Tuesday!
2015-11-11 23:37
勿忘我心
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2015-11-14
收藏
得分:0 
回复 楼主 hacker梦魇
switch的表达式可以死整型和字符型
a>1?2:3是三目条件运算 当a>1时输出2,;当a>1不成立时输出3。
大于7必定大于1,所以a>1成立输出2,即tuesday

[此贴子已经被作者于2015-11-14 23:08编辑过]

2015-11-14 23:05
勿忘我心
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2015-11-14
收藏
得分:0 
回复 4楼 hacker梦魇
3.4.5.6.7都大于1,所以在a>1?2:3是输出2,所以是tuesday
2015-11-14 23:12
快速回复:问大家一个关于C语言的小问题
数据加载中...
 
   



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

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