标题:救助修改一个简单的C程序
只看楼主
waitmiss
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-10-24
 问题点数:0 回复次数:3 
救助修改一个简单的C程序
题目:以每行一个单词的形式打印输入
我的程序是(没有结果):
#include <stdio.h>
#define IN 1
#define OUT 0
void main()
{
    int c,state;
    state=OUT;
    while((c=getchar())!='\n')
        {
            if(c==' '||c=='\n'||c=='\t')
                {
                    if(state==IN)
                        {
                            putchar('\n');
                            state=OUT;
                        }
                    else if(state==OUT)
                        {
                            state=IN;
                            putchar(c);
                        }
                    else
                        putchar(c);
                }
        }
}
搜索更多相关主题的帖子: 救助 
2008-10-30 21:55
hjmHhyp
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-10-9
得分:0 
你看看while的条件(c=getchar())!='\n'在逻辑上是否正确,整个程序可以试着单步调试。我单步调试了一下,根本无法进入到循环中。

[[it] 本帖最后由 hjmHhyp 于 2008-10-30 22:42 编辑 [/it]]
2008-10-30 22:38
iamah
Rank: 1
等 级:新手上路
威 望:1
帖 子:69
专家分:0
注 册:2008-10-31
得分:0 
错误太多,不好解释,给你重写了个

#include <stdio.h>

void main()
{
    char c;
    while((c=getchar())!='\0')
        {
            if(c==' '||c=='\n'||c=='\t')
               
                    putchar('\n');
                           
                                   
             else
                  putchar(c);
                       
        }
}



你的程序里的STATE完全不需要,不知道你用它的意思是什么?

[[it] 本帖最后由 iamah 于 2008-10-31 11:35 编辑 [/it]]
2008-10-31 11:05
wanjiang
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2008-10-25
得分:0 
你重写的程序也不是很好,就是程序执行的时候不能正常结束
2008-10-31 16:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-241582-1-1.html




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

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