| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1616 人关注过本帖
标题:switch 和 scanf 的问题!
只看楼主 加入收藏
cjy1001000
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-11-29
收藏
 问题点数:0 回复次数:10 
switch 和 scanf 的问题!
#include <stdio.h>
void main()
{
    int s1,s2,s3;
    scanf("%d%d%d",&s1);
}
switch(s1)
{
case s1<100: printf("ok");
case s1>100: printf("bbb");
case s1=1000: printf(aaa");
default : printf("i don't know you want to do something!");
}


运行的时候出错了...不知哪里错.还望高手解答...
搜索更多相关主题的帖子: scanf switch 
2008-12-07 09:11
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
这个代码,我看用 if else  比较合适。下面是你的代码中的错误部分。

#include <stdio.h>
void main()
{
    int s1,s2,s3;/* 你到底用到几个数?我看遍整篇代码也没发现有第二个变量。把后面两个删去 */
    scanf("%d%d%d",&s1);
   /* 你到底要输入几个数?如果是输入一个数,改为: scanf("%d",&s1);  */
}  /* 大括号的位置也错了,main函数到这就结束了么? */
switch(s1)
{
case s1<100: printf("ok");
case s1>100: printf("bbb");
case s1=1000 : printf(aaa");

/* case 只能是常量,不能为变量或表达式 ,等式也错了*/
default : printf("i don't know you want to do something!");
}

--------------------------------------

    鉴于此,下面是建议改的代码:

#include <stdio.h>
void main()
{
    int s1;
    scanf("%d",&s1);
    if(s1<100)   printf("ok");
    else if(s1>100&&s1<1000)   printf("bbb");
    else if(s1>=1000)   printf(aaa");
    else printf("i don't know you want to do something!");
}

[[it] 本帖最后由 广陵绝唱 于 2008-12-7 09:23 编辑 [/it]]
2008-12-07 09:21
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
case后面要有break;
然后main的大括号搞错位置了了
接着,case后面不能像if一样接一个范围,他只能接准确的值,所以这里不能使用switch

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-12-07 09:22
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
还有好几个问题:
scanf("%d%d%d",&s1);怎么只有s1?
干吗用三个%d
printf(aaa");
这是嘛意思?半个引号,逗我玩哦。
printf("aaa");才对

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-12-07 09:24
sf469210604
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2008-9-26
收藏
得分:0 
错的很多
LS两位都点出来了
LZ还是多看看书吧
2008-12-07 09:27
cjy1001000
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-11-29
收藏
得分:0 
2楼的 我想用switch做  不想用if  有方法吗????
2008-12-07 09:38
wuke2008
Rank: 1
来 自:南京
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-11-29
收藏
得分:0 
LZ,如果怕大括号丢或者多余,建议开始就打一对大括号,然后光标移动到一对括号中间敲回车,这样写出来的程序有层次感,纠错也容易,直观嘛~~~个人经验~~~
错误已经点出来了,switch只能是指定值,而if可以是范围,自己思考一下吧~~加油!!

[[it] 本帖最后由 wuke2008 于 2008-12-7 10:00 编辑 [/it]]
2008-12-07 09:58
rangyiqiang
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-12-2
收藏
得分:0 
LS的都点出错误了~~~~~~~~大致的就是那么多的错了~~~~~~~~~~我也都是新学的~    努力吧LZ~~~~~~~~~~~
2008-12-08 20:02
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 第6楼 cjy1001000 的帖子
那就请您把原题或者是您的原意说明白,这样别人才好帮助您呀。您说是不是这个道理?
2008-12-09 02:56
飞跃
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-25
收藏
得分:0 
#include <stdio.h>
void main()
{
    int s1;
    scanf("%d",&s1);
}
switch(s1)
{
case s1<100: printf("ok");
case s1>100: printf("bbb");
case s1=1000: printf(aaa");
default : printf("i don't know you want to do something!");
}
2008-12-09 13:49
快速回复:switch 和 scanf 的问题!
数据加载中...
 
   



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

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