| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 759 人关注过本帖
标题:循环语句的输出,求解释
只看楼主 加入收藏
lover0126
Rank: 1
来 自: 四川
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-11-5
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
循环语句的输出,求解释
#include<stdio.h>
int main(void)
{
    char *s="12134211";
    int a[4];
    int k,i;
    for(k=0;s[k];k++)
    {
        switch(s[k])
        {
        case '1':i=0;
        case '2':i=1;
        case '3':i=2;
        case '4':i=3;
        }
        a[i]++;
    }
    for(k=0;k<4;k++)
    {
        printf("%d",a[k]);
    }
}

[ 本帖最后由 lover0126 于 2011-11-5 14:25 编辑 ]
2011-11-05 14:24
huanega
Rank: 3Rank: 3
来 自:内蒙古
等 级:论坛游侠
帖 子:117
专家分:192
注 册:2011-11-4
收藏
得分:3 
到处都是错呢!首先说下你这程序想实现什么功能?
for(k=0;s[k];k++)      //这里你的循环种植条件是什么?s[k]k值无限加,死循环了吧//
    {
        switch(s[k])
        {
        case '1':i=0;
        case '2':i=1;
        case '3':i=2;
        case '4':i=3;
        }
        a[i]++;
    }

兴趣是编程最好的老师
2011-11-05 14:32
huanega
Rank: 3Rank: 3
来 自:内蒙古
等 级:论坛游侠
帖 子:117
专家分:192
注 册:2011-11-4
收藏
得分:0 
到处都是错呢!首先说下你这程序想实现什么功能?
for(k=0;s[k];k++)      //这里你的循环终止条件是什么?s[k]k值无限加,死循环了吧//
    {
        switch(s[k])
        {
        case '1':i=0;
        case '2':i=1;
        case '3':i=2;
        case '4':i=3;
        }
        a[i]++;
    }
后面的s[k],起初你s定义的是字符串,不是数组。

兴趣是编程最好的老师
2011-11-05 14:35
solar009
Rank: 2
等 级:论坛游民
帖 子:10
专家分:11
注 册:2011-10-10
收藏
得分:3 
俺也刚学习不久,完全的看不懂,s[k]不能当动态数组使用吧?
2011-11-05 14:54
enjoy迷星
Rank: 2
等 级:论坛游民
帖 子:18
专家分:42
注 册:2011-11-5
收藏
得分:3 
for(k=0;s[k];k++)  ///循环终止条件不明确,导致死循环
    {
        switch(s[k])
        {
        case '1':i=0;
        case '2':i=1;
        case '3':i=2;
        case '4':i=3;
        }
        a[i]++;       }
2011-11-05 15:01
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:3 
回复 楼主 lover0126
case '1':i=0;
case '2':i=1;        
case '3':i=2;        
case '4':i=3;
养成良好的习惯,每个case后面要加上break;
楼主发的代码是要统计一个字符串里数字1,2,3,4的个数。循环是有终止条件的,s是字符串,字符串的结束符是'\0',循环判断s[k]等于'\0'退出循环,'\0'值等于0,所以循环可以简写为s[k]

总有那身价贱的人给作业贴回复完整的代码
2011-11-05 15:37
huanega
Rank: 3Rank: 3
来 自:内蒙古
等 级:论坛游侠
帖 子:117
专家分:192
注 册:2011-11-4
收藏
得分:0 
回复 6楼 embed_xuel
就是循环到遇到字符串中的结束符就终止循环了吧,哎~~失败!失败!

兴趣是编程最好的老师
2011-11-05 16:09
suimengerfei
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2011-11-5
收藏
得分:3 
k值没有范围 ,  死循环了。
2011-11-05 16:17
superjian
Rank: 2
等 级:论坛游民
帖 子:8
专家分:15
注 册:2011-9-25
收藏
得分:3 
楼主这个程序有2个错误,改正后即可得到正确结果:
1.  数组a[4]没有初始化为0。
2.  每个case语句后面没有加break.
2011-11-05 17:14
快速回复:循环语句的输出,求解释
数据加载中...
 
   



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

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