| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 798 人关注过本帖, 1 人收藏
标题:大家看这个程序哪里出错了?
只看楼主 加入收藏
tszhao
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-3-4
收藏(1)
 问题点数:0 回复次数:7 
大家看这个程序哪里出错了?
//作用是统计空格数,制表符,换行符的个数,能够通过编译,但是,出不来结果!!
#include <iostream>
using namespace std;
int main()
{
    int blank(0),tab(0),enter(0),other(0);
    char ch;
    while(ch=cin.get())
        switch(ch)
    {
        case ' ':++blank;break;
        case '\t':++tab;break;
        case '\n':++enter;break;
        default:++other;
    }
    cout<<"blank:"<<blank<<endl;
    cout<<"tab:"<<tab<<endl;
    cout<<"enter:"<<enter<<endl;
    cout<<"other:"<<other<<endl;
    return 0;
}
搜索更多相关主题的帖子: 统计 default blank include 
2008-03-08 13:03
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include<iostream>
main()
{
    int a[200]={0},max=0;
    char b[100],*p;
    p=b;
    gets(b);
    do
    {   
        if((int)*p>max)
          max=(int)*p;
        a[(int)*p++]++;
   
    }while(*p!='\0');
    for(int i=0;i<=max;i++)
        if(a[i]!=0)
    printf("a[%d]=%d",i,a[i]);//这样用就最好了printf("a[%c]=%d",i,a[i])
}

学习需要安静。。海盗要重新来过。。
2008-03-08 13:08
tszhao
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-3-4
收藏
得分:0 
呵呵,谢谢楼上了,不过,好像解决的不是我这个问题哈!~~
2008-03-08 14:08
wfx_best
Rank: 1
来 自:江苏
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-7-19
收藏
得分:0 
我在VC6.0上运行了你的程序
结果无法终止
问题出现在 while(ch=cin.get()) 这个语句上
改成 while(cin.get(ch)) 就正确了
原因是:
    while(ch=cin.get())这个语句中,while 实际检查的是 ch ,然而get() 返回值经转换后
再赋给 ch , ch 总是非空字符状态,于是 while 无法终止循环.
    换成 while(cin.get(ch)) ,while 检查的是 cin 流的状态,当你想结束程序时只要输入
Ctrl + Z 强制到达流末端就 OK 了.

艺痴者技必良
2008-03-08 14:11
tszhao
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-3-4
收藏
得分:0 
谢谢楼上了,解释的也很棒!~~~眼泪哗哗的!!~~~

我是笨鸟,但是,我想飞的更高点!~~
2008-03-08 14:17
wfx_best
Rank: 1
来 自:江苏
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-7-19
收藏
得分:0 
不客气,这里是大家共同学习交流的地方

艺痴者技必良
2008-03-08 14:25
lyc5305562
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-3-8
收藏
得分:0 
貌似2楼的,看的不是很懂,能否解释下?
2008-03-09 13:17
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
统计所有字符出现的个数.....把字符的acii取出来变成第二个数组的下标...以后遇到相同的字母只要把下标所在的数组元素加一.....

学习需要安静。。海盗要重新来过。。
2008-03-09 13:21
快速回复:大家看这个程序哪里出错了?
数据加载中...
 
   



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

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