| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 359 人关注过本帖
标题:为什么循环里不自加了?
只看楼主 加入收藏
飞跃的乌龟
Rank: 2
等 级:论坛游民
帖 子:96
专家分:18
注 册:2012-10-20
结帖率:90.32%
收藏
已结贴  问题点数:20 回复次数:9 
为什么循环里不自加了?
#include<stdio.h>
int main()
{
    int i,k,m,b[26],j;
    char a[26],ch;
    for(i='a',k=0;i<='z';i++,k++)
    {
        a[k]=i;
        b[k]=0;
    }
    while((ch=getchar())!='\n')
    {
        for(k=0;k<26;k++)// 我试过调试,发现这里的k一直是0,b[k]也是0
        {
            if(a[k]==(ch=getchar()))
                b[k]++;break;
            break;
        }
    }
    for(k=0;k<26;k++)//.
    {
        printf("%c出现了%d次。\n",a[k],b[k]);
    }
    return 0;
}
程序目的是:输入一串小写字母,输出a到z每一个字母各输出多少。我想知道那个为什么不自加,还有能不能再这个程序上把它改正确。

[ 本帖最后由 飞跃的乌龟 于 2012-11-19 16:48 编辑 ]
搜索更多相关主题的帖子: include return 
2012-11-19 16:45
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
收藏
得分:0 
改了下while循环,是你想要的结果吗?
while((ch=getchar())!='\n')
    {
        for(k=0;k<26;k++)
        {
            if(a[k]==ch)
                b[k]++;
        }
    }
2012-11-19 17:02
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
收藏
得分:0 
至于原因吗,你应该懂了的~ ~
2012-11-19 17:02
飞跃的乌龟
Rank: 2
等 级:论坛游民
帖 子:96
专家分:18
注 册:2012-10-20
收藏
得分:0 
回复 2楼 jk_love
输入字母串后就没结果了
2012-11-19 17:10
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
收藏
得分:10 
完了你要按回车啊  大哥

#include<stdio.h>
int main()
{
    int i,k,m,b[26],j;
    char a[26],ch;
    for(i='a',k=0;i<='z';i++,k++)
    {
        a[k]=i;
        printf("%c\n",a[k]);
        b[k]=0;
    }
    while((ch=getchar())!='\n')
    {
        for(k=0;k<26;k++)
        {
            if(a[k]==ch)
                {
               
                b[k]++;
               
              }
        }
    }
    for(k=0;k<26;k++)//我试过调试,发现这里的k一直是0,b[k]也是0.
    {
        printf("**:%c--***%d\n",a[k],b[k]);
    }
    return 0;
2012-11-19 17:15
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:10 
回复 楼主 飞跃的乌龟
#include<stdio.h>
int main()
{
    int i,k,m,b[26],j;
    char a[26],ch;
    for(i='a',k=0;i<='z';i++,k++)
    {
        a[k]=i;
        b[k]=0;
    }
    while((ch=getchar())!='\n')
    {
        for(k=0;k<26;k++)// 我试过调试,发现这里的k一直是0,b[k]也是0
        {
            if(a[k]==ch)//这里这样写~~~
            {
                b[k]++;
                continue;//break就停止了,使用continue,结束本此循环
            }
        }
    }
    for(k=0;k<26;k++)//.
    {
        printf("%c出现了%d次。\n",a[k],b[k]);
    }
    return 0;
}
2012-11-19 18:45
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:0 
回复 楼主 飞跃的乌龟
#include<stdio.h>
int main()
{
    int i,k,m,b[26],j;
    char a[26],ch;
    for(i='a',k=0;i<='z';i++,k++)
    {
        a[k]=i;
        b[k]=0;
    }
    while((ch=getchar())!='\n')
    {
        for(k=0;k<26;k++)// 我试过调试,发现这里的k一直是0,b[k]也是0
        {
            if(a[k]==ch)//这里这样写~~~
            {
                b[k]++;
                continue;//break就停止了,使用continue,结束本此循环
            }
        }
    }
    for(k=0;k<26;k++)//.
    {
        printf("%c出现了%d次。\n",a[k],b[k]);
    }
    return 0;
}
2012-11-19 18:46
hehongwei152
Rank: 2
来 自:珠海
等 级:论坛游民
帖 子:15
专家分:31
注 册:2012-9-28
收藏
得分:0 
{  for(k=0;k<26;k++)// 我试过调试,发现这里的k一直是0,b[k]也是0
         
           { if(a[k]==(ch))
                b[k]++;//break;
           // break;
        }
    }
二楼的正确。

return 0;
2012-11-19 18:47
qujunde
Rank: 2
等 级:论坛游民
帖 子:6
专家分:11
注 册:2012-11-19
收藏
得分:0 
以下是引用未名湖的云在2012-11-19 18:45:55的发言:

#include
int main()
{
    int i,k,m,b[26],j;
    char a[26],ch;
    for(i='a',k=0;i<='z';i++,k++)
    {
        a[k]=i;
        b[k]=0;
    }
    while((ch=getchar())!='\n')
    {
        for(k=0;k<26;k++)// 我试过调试,发现这里的k一直是0,b[k]也是0
        {
            if(a[k]==ch)//这里这样写~~~
            {
                b[k]++;
                continue;//break就停止了,使用continue,结束本此循环
            }
        }
    }
    for(k=0;k<26;k++)//.
    {
        printf("%c出现了%d次。\n",a[k],b[k]);
    }
    return 0;
}

正解  就是break 使用错误 应该是continue
2012-11-19 19:20
低调的哥额
Rank: 2
来 自:四川广安
等 级:论坛游民
帖 子:49
专家分:30
注 册:2012-6-6
收藏
得分:0 
55

目标→黑客←努力 qq群281123877,讨论 奋斗!
2012-11-19 21:10
快速回复:为什么循环里不自加了?
数据加载中...
 
   



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

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