c程序设计语言书上的问题!帮帮忙
那个“统计字符数”的问题,为什么我按书上写完以,运行只能输入字符的,它是怎么统计出来的啊?相信大家都做过吧!!我刚学c 几天!大家帮帮我!
代码如下:
#include <stdio.h>
/*统计输入字符数1*/
main()
{
long nc;
int c;
nc=0;
while(nc=getchar()!=EOF)
++nc;
printf("%1d\n",nc);
}
问题点数:0、回复次数:4Top
1 楼haotian422(wuhaotian)回复于 2003-12-01 22:40:42 得分 0
while中没有nc=的这个不队是下面这个!
#include <stdio.h>
/*统计输入字符数1*/
main()
{
long nc;
int c;
nc=0;
while(getchar()!=EOF)
++nc;
printf("%1d\n",nc);
}Top
2 楼zhangfjj(小张)回复于 2003-12-02 01:27:16 得分 0
2个错误:
1。循环终止条件
EOF是在stdio.h中定义的一个宏: #define EOF -1,一般用做文件的结束符。
你用它做循环终止条件,会死循环,你的程序既然是统计输入的字符数,你应该指定一个输入终止的条件,如输入一个回车符表示输入结束。
2。清除数据输入缓冲区,在循环体中加一个语句getchar();不然你输入一个字符'a',对于你的循环来说用两个字符'a'和回车符
#include <stdio.h>
main()
{
long nc=0;
while(getchar()!='\n')
nc++;
printf("%ld\n",nc);
}
Top
3 楼zhangfjj(小张)回复于 2003-12-02 01:30:02 得分 0
对不起,输入错了
不然你输入一个字符'a',对于你的循环来说接收到两个字符'a'和回车符,你就无法统计出正确的字符数
#include <stdio.h>
main()
{
long nc=0;
while(getchar()!='\n')
{
getchar();
nc++;
}
printf("%ld\n",nc);
}
Top
4 楼haotian422(wuhaotian)回复于 2003-12-02 12:31:43 得分 0
那这是书上的错误吗?
应该是吧!!难怪我怎么都想不明,这下可以了!
谢谢!我想自学但感觉真的好麻烦啊!!!谢谢高手!!Top




