新手C问题

gaoan000 2010-08-13 04:00:55
今天做c程序设计语言的课后习题
直接上代码
总觉得有点问题,又不知道具体错在哪里
希望大家指定缺点:
#include <stdio.h>
main()
{
int c;
while((c=getchar())!= EOF)
if(c == ' ')
{while((c = getchar()) != ' ')
;
}
putchar(c);
}
这道题目的是把多余的空格合成一个
我的思路是用getchar直接跳过多余的空格
不知道这样可不可以
...全文
129 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaoan000 2010-08-13
  • 打赏
  • 举报
回复
真的很感谢上面的几位
让我茅塞顿开
高人一句话就是比新手好啊
呵呵
yzx714 2010-08-13
  • 打赏
  • 举报
回复
程序逻辑上出了点问题,楼上几位已经写出了答案,新手能写成这样已经不错了
xy_zhang 2010-08-13
  • 打赏
  • 举报
回复
哦 是哦……

想了一下这样更好:

int main()
{
int c;
while((c=getchar())!= EOF)
{
putchar(c);
if(c == ' ')
{
while((c = getchar()) == ' ');
ungetc(c, stdin);
}
}
return 0;
}
Jim_King_2000 2010-08-13
  • 打赏
  • 举报
回复
楼上的程序需要做一个小修改。

int main()
{
int c;
while((c=getchar())!= EOF)
{
putchar(c);
if(c == ' ')
{
while((c = getchar()) == ' ');
if (c == EOF)
break;
else
putchar(c);
}
}
return 0;
}
xy_zhang 2010-08-13
  • 打赏
  • 举报
回复
#include <stdio.h>

int main()
{
int c;
while((c=getchar())!= EOF)
{
putchar(c);
if(c == ' ')
{
while((c = getchar()) == ' ');
if (c == EOF)
break;
}
}
return 0;
dinghing 2010-08-13
  • 打赏
  • 举报
回复
#include <stdio.h>
main()
{
int c;
while((c=getchar())!= EOF)
if(c == ' ')
{while((c = getchar()) != ' ')//改为c = getchar()) != EOF
;
}
putchar(c);
}
冉航--小虾米 2010-08-13
  • 打赏
  • 举报
回复

#include <stdio.h>
main()
{
int c;
while((c=getchar())!= EOF)
if(c == ' ')
{while((c = getchar()) != ' ')
; //这里有问题, 应该把putchar(c)放到while语句里
}
putchar(c);
}
gaoan000 2010-08-13
  • 打赏
  • 举报
回复
感觉是空格输出那里出问题了
按照那样的话好像不输出空格了
是不是要先单独输出个空格?
wade_2003 2010-08-13
  • 打赏
  • 举报
回复

while((c=getchar())!= EOF)


我觉得这里不能完全判断吧

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧