| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4182 人关注过本帖
标题:[求助]IF语句转换SWITCH语句写出!如何
只看楼主 加入收藏
C语言的深度
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:卡特的怀抱
等 级:版主
威 望:1
帖 子:9577
专家分:19
注 册:2007-10-22
结帖率:100%
收藏
 问题点数:0 回复次数:14 
[求助]IF语句转换SWITCH语句写出!如何
#include<stdio.h>
void main()
{
int x,y;
scanf("%d",&x);
if(x<1)
{
y=x;
printf("x=%3d, y=x=%d\n",x,y);
}
else if(x<10)
{
y=2*x-1;
printf("x=%3d, y=2*x-1=%d\n",x,y);
}
else
{
y=3*x-11;
printf("x=%3d, y=3*x-11%d\n",x,y);
}
}


大家!这个语句要用switch写出!要怎么改写!!
搜索更多相关主题的帖子: SWITCH 语句 
2007-11-11 07:54
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

这段代码因该使用if 而不是 switch(){}

强行使用 switch(){} ,没有任何意义

/* 无聊的 switch(){} 版 */

#include <stdio.h>

int main(void)
{
int x, y;
int c;
scanf("%d", &x);

if(x < 1)
c = 1;
else if(x < 10)
c = 2;
else
c = 3;

switch(c)
{
case 1:
y = x;
printf("x=%3d, y=x=%d\n",x,y);
break;
case 2:
y = 2*x-1;
printf("x=%3d, y=2*x-1=%d\n",x,y);
break;
case 3:
y = 3*x-11;
printf("x=%3d, y=3*x-11%d\n",x,y);
break;
}

return 0;
}


/* 搂主因该去了解一下 switch(){} 的语法 */

[此贴子已经被作者于2007-11-11 20:58:48编辑过]


—>〉Sun〈<—
2007-11-11 20:51
qq95620412
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-11-5
收藏
得分:0 

回个不一样的switch(),不算变态吧,以前学BASIC时见过的编程思路,不知现在还有没有人在用。

#include <stdio.h>

int main(void)
{
int x, y;
int c;
scanf("%d", &x);

c=(x<1)*1+(x>=1&&x<10)*2+(x>=10)*3;

switch(c)
{
case 1:
y = x;
printf("x=%3d, y=x=%d\n",x,y);
break;
case 2:
y = 2*x-1;
printf("x=%3d, y=2*x-1=%d\n",x,y);
break;
case 3:
y = 3*x-11;
printf("x=%3d, y=3*x-11%d\n",x,y);
break;
}

return 0;
}



发个问题

不用 if语句,也不用?:运算,输出两个int型整数中的较大数。这两个数从键盘输入。大家想一想。


人生路难走,转眼已白头。伤心望远山,黯然下小楼。
2007-11-11 21:29
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 

int a,b,c;
scnaf("%d%d",&a,&b);
c=int(a>b);
switch(c){
case 0:printf("%d",b);break;
case 1:printf("%d",a);break;
default:return;
}
输出两个数的最大者

或者这样:
int a,b,c;
scanf("%d%d",&a,&b);
c=(a>b)*a+(a<=b)*b;
printf("%d",c);


[此贴子已经被作者于2007-11-11 22:21:01编辑过]


英者自知,雄者自胜
2007-11-11 22:17
C语言的深度
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:卡特的怀抱
等 级:版主
威 望:1
帖 子:9577
专家分:19
注 册:2007-10-22
收藏
得分:0 
LS的 你好像算输出两个数的最小者啊!!!
允了`

用代码打出楼房...用编程编出幸福...
2007-11-12 14:28
nianshi
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-7
收藏
得分:0 
2楼的高 简单实用 避免了写多种Case的麻烦 豁然开郎

行至水穷处 坐看去起时
C语言QQ群1:51871776  群2:26313099  群3:47145282
2007-11-12 14:45
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
2楼的有意义吗?不但用了if而且更复杂了!
2007-11-12 15:08
BigBen
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-11-7
收藏
得分:0 
c=(x<1)*1+(x>=1&&x<10)*2+(x>=10)*3;
书上没有

2007-11-12 16:08
BigBen
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-11-7
收藏
得分:0 
啊啊

2007-11-12 16:09
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
以下是引用BigBen在2007-11-12 16:08:46的发言:
c=(x<1)*1+(x>=1&&x<10)*2+(x>=10)*3;
书上没有

书上没有的多了去了。。。


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-12 16:35
快速回复:[求助]IF语句转换SWITCH语句写出!如何
数据加载中...
 
   



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

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