| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 377 人关注过本帖
标题:请高手帮我看看这个程序问题出在哪里?
只看楼主 加入收藏
woyaoccie
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-3-5
收藏
 问题点数:0 回复次数:2 
请高手帮我看看这个程序问题出在哪里?
程序用于统计单词数量,一个不包含空格 制表符 换行符的字符串就为一个单词,我在编译器上调试链接全没错,就是运行后,输入字符串后,
没用printf的输出结果。
#include <stdio.h>
main()
{ int old,now,c,num;           /*now用于存放当前读取字符的类型值,old用于存放当前字符前一个字符的类型值,num用于统计单词数目*/
  old=num=0;                                                                                                            
  while((c=getchar())!=EOF)
    {
       if(c==' '||c=='\n'||c=='\t')    /*用0表示这3种符号*/
        { now=0;                      /*当前读取的字符为空格或者换行或制表符*/               
        if(old==1)                    /*判断前个字符是不是数字或者字母*/
            ++num;                   /*若上个字符为字母或者数字,则计数*/
           old=now;}                 /*将当前读取的字符类型值赋予Old,now又指向下一个字符*/
      else
      {now=1;old=now;}              
     }
    printf("num=%d",num);
  }
就是输入字符串后,程序运行没了反应,并没有num= 输出。编译和链接都正确。请高手指教
搜索更多相关主题的帖子: 字符串 制表符 换行符 编译器 include 
2010-03-05 08:00
woyaoccie
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-3-5
收藏
得分:0 
呵呵 不好意思,我一直以为是我程序哪里出了错 一直找不出错误,后来才知道原来是运行时没有输入 Ctrl+z
2010-03-05 08:27
陈大师
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:231
专家分:1038
注 册:2009-11-4
收藏
得分:0 
嗯对 其实这样就行了 更简单
#include <stdio.h>
main()
{ int c,num;         
  num=0;                                                                                                            
  while((c=getchar())!=EOF)
    {
       if(c==' '||c=='\n'||c=='\t')   
         ++num;                  
    }
  printf("num=%d\n",num);
}
2010-03-05 11:38
快速回复:请高手帮我看看这个程序问题出在哪里?
数据加载中...
 
   



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

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