| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 545 人关注过本帖
标题:看一看这个switch(t)中的t是什么意思?
只看楼主 加入收藏
l1294315957
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2015-3-12
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:7 
看一看这个switch(t)中的t是什么意思?
图片附件: 游客没有浏览图片的权限,请 登录注册

t是什么意思?
t中的1,2,3,……与case1,2,3,……是一一对应的关系吗?
t如何与case中的表达式匹配?
搜索更多相关主题的帖子: 表达式 如何 
2015-04-07 21:19
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:3 
(x, y)被定义成 点在平面直角座标系内的座标
t的计算公式 是个6个乘式相加
每个乘式都有个条件判断
这就使每个乘式的结果要么是0 要么是 (因子 * 1) 即 1 2 3 4 5 6 这些取值
6个值有相斥性 一个值不为0时 其它皆为 0
switch根据t的取值 执行相应的case

结果不言而喻……

Only the Code Tells the Truth             K.I.S.S
2015-04-07 22:06
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:3 
回复 楼主 l1294315957
t是什么意思?
t是用来表示于x、y坐标系里的一个点。

t中的1,2,3,……与case1,2,3,……是一一对应的关系吗?
一一对应,只要最终为整数就可,结果为1则跳到case1开始。(结果为整数的表达式或以整数形式使用的字符)

t如何与case中的表达式匹配?
(x>0 && y>0)表示在第一区限,
而1*(x>0 && y>0)表示满足第一区限则结果为1*1,不满足则为1*0.
以此类推,结果其中只有一个判断条件成立,其他则为0.
最后输出相应成立的case。

最后其实还有最后一个状况是x==0 && y==0.用default反应了。
2015-04-08 00:21
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:3 
这个t的表达式很巧妙。
它代替了if ...else...

这个表达式的每项有系数,这个系数也正是 当它后面的条件成立时 对应的case标号。

这些条件都是互斥的,也就是当其中一个成立(取1),另外的5个都不成立,都取0,所以t的值就取得了标号的值。

比如假如第一个条件成立的情况:t= 1*1  +  2*0 + 3*0 + 4*0 + 5*0 + 6* 0

也就对应case 1了。

你醒了?快起来敲代码!!
2015-04-08 11:30
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:3 
t是什么意思?
    ——整形变量

t中的1,2,3,……与case1,2,3,……是一一对应的关系吗?
    ——是

t如何与case中的表达式匹配?
    ——由t的值决定

红线那一行,6个条件表达式都是假 t的值等于0  如有一个为真,其它都为假,t的值等于为真的表达式前面的乘数

人有多懒,编程就有多难。
2015-04-08 12:12
l1294315957
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2015-3-12
收藏
得分:0 
回复 2楼 longwu9t
今天明白了,谢谢回复
2015-04-08 12:56
渣渣渣
Rank: 2
等 级:论坛游民
帖 子:26
专家分:17
注 册:2015-3-23
收藏
得分:0 
就是对t进行判断
2015-04-08 13:15
wdgmax
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-5-3
收藏
得分:0 
#include<stdio.h>
 
 int main()
 {
     int x,y,t;
     printf("请输入X=");
     scanf("%d",&x);
     printf("请输入Y=");
     scanf("%d",&x);
     t=1*(x>0&&y>0)+2*(x<0&&y>0)+3*(x<0&&y<0)+4*(x>0&&y<0)+5*(x==0&&y!=0)+6*(x!=0&&y==0);
     switch(t)
     {
         case 1:printf("坐标在第一象限\n");break;
         case 2:printf("坐标在第二象限\n");break;
         case 3:printf("坐标在第三象限\n");break;
         case 4:printf("坐标在第四象限\n");break;
         case 5:printf("坐标在Y轴\n");break;
         case 6:printf("坐标在X轴\n");break;
        
         
     }
     return 0;
 }

 在C/C++程序设计学习与实验系统下运行  我怎么不行呢
2015-06-13 16:10
快速回复:看一看这个switch(t)中的t是什么意思?
数据加载中...
 
   



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

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