| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1974 人关注过本帖
标题:关于switch语句,可以解释一下吗?
只看楼主 加入收藏
IDDI
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-1-6
结帖率:100%
收藏
已结贴  问题点数:1 回复次数:7 
关于switch语句,可以解释一下吗?
题目说输出结果为4 2 1 1  无奈不知道为什么弄到电脑上运行不成功,求大家帮我看看这一串代码的意思,我搞不懂
代码如下:
#include <stdio.h>
main()
{
    char *s="12134211";
    int v[4]={0,0,0,0},k,i;
    for (k=0;s[k]!=' \0';k++)
    {
        switch(s[k])
        {
            case '1':i=0;break;
                    case '2':i=1;break;
                case '3':i=2;break;
                case '4':i=3;
        }
        v[i]++;
    }
    for (k=0;k<4;k++)
        printf("%d ",v[k]);
}
搜索更多相关主题的帖子: include 
2016-01-12 10:42
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:1 
对于main 前面不加返回值的 代码  不予理会

DO IT YOURSELF !
2016-01-12 10:48
demon90s
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:44
专家分:121
注 册:2016-1-3
收藏
得分:1 
for (k=0;s[k]!=' \0';k++)
多了一个空格
2016-01-12 10:53
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:1 
可能是楼主看的书比较古老,或者是K&R的原版书, 那些书的代码上是不必要求C有返回值的. 所以楼主可以考虑适当的加上一些关键字或者语句什么的, 查找一下语法问题,比如3漏说的多个空格的问题, 然后在自己的计算机上试一下. 一般来说, 这样的代码在不同的计算机系统上也不会出现大的差异.

如果还是不明白, 建议看书的指针,字符串,数组相关知识.  

这个程序的作用就是输出程序指定的字符串中的1,2,3,4分别出现的次数的.

代码测试环境:  WinXP+C-Free5.0.
2016-01-12 12:24
chenzhaoxia
Rank: 1
等 级:新手上路
帖 子:16
专家分:6
注 册:2011-2-1
收藏
得分:1 
你没定义s数组但是在 for (k=0;s[k]!=' �';k++){switch(s[k])中用到了数组所以不能运行可以改成
#include <stdio.h>
main()
{
    char *s="12134211";
    int v[4]={0,0,0,0},k,i;
    for(k=0;*(s+k)!='�';k++)
    {
        switch(*(s+k))
        {
            case '1':i=0;break;
                    case '2':i=1;break;
                case '3':i=2;break;
                case '4':i=3;
        }
        v[i]++;
    }
    for(k=0;k<4;k++)
        printf("%d ",v[k]);
}

没有永远成功
2016-01-12 14:55
chenzhaoxia
Rank: 1
等 级:新手上路
帖 子:16
专家分:6
注 册:2011-2-1
收藏
得分:0 
回复 5楼 chenzhaoxia
那个问号是\0没变

没有永远成功
2016-01-12 14:56
eFun
Rank: 6Rank: 6
等 级:禁止访问
威 望:1
帖 子:58
专家分:400
注 册:2015-12-27
收藏
得分:0 
回复 5楼 chenzhaoxia
鼻子插大葱
楼主已经定义了指针字符串常量,指针是支持类数组的访问模式的,即s【i】=*(s+i)。楼主的代码就3楼指出的一个问题。老版c可不用指明main函数类型。

[此贴子已经被作者于2016-1-12 15:13编辑过]

2016-01-12 15:12
chenzhaoxia
Rank: 1
等 级:新手上路
帖 子:16
专家分:6
注 册:2011-2-1
收藏
得分:0 
回复 7楼 eFun
额,的确,哈哈,我也是新手,以前不知道!!见谅,见谅!

没有永远成功
2016-01-12 15:31
快速回复:关于switch语句,可以解释一下吗?
数据加载中...
 
   



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

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