c语言简单问题.书上例题,怎么看怎么不明白.希望能高人前来指点.

程序file1.c中的代码如下:#include"stdio.h"voidinput(char*s){charc;printf("inputtext\n");c=getc... 程序file1.c中的代码如下:
#include "stdio.h"
void input (char *s){
char c;
printf("input text \n");
c=getchar();
while(c!=EOF){
*s++=c;
c=getchar();
}
*s='\0';
}
程序file2.c中的代码如下:
void count(char *s,int *nw,int *nl){
char *p=s;
int word=0;
*nw=*nl=0;
while(*p!='\0'){
if(*p=='\n') *nw++;
if(*p==' '||*p=='\t'||*p=='\n')
word=0;
else if(word==0){
*nl++;
word=1;
}
p++;
}
}
程序file3.c中的代码如下:
#include "stdio.h"
void output(char *s){
puts(s);
}
程序file4.c中的代码如下:
#include "stdio.h"
void main(){
char s[80];
int nw,nl;
input(s);
count(s,&nw,&nl);
output(s);
printf("\n text words %d,line %d \n",nw,nl);
}
程序功能是输入一段文本,存放到字符数组中文本的末尾以EOF结束,文本中单词以空格符.换行符和跳格符分开,统计单词个数和行数,输出文本.
运行结果为:
intput text:
the capital of
china
beijing
I love
china
^z
the capital of
china
beijing
I love china
china
text words 8,line 5
运行结果不对呀,运行结果说有8个单词和5行......这明显不对......求解
还有我根本就没运行出来,因为运行以后没办法推出dos只能不停的输入单词
展开
 我来答
前端报错
2011-07-14 · 前端开发技术分享,分析
前端报错
采纳数:1573 获赞数:7026

向TA提问 私信TA
展开全部
if(*p=='\n') *nw++;
if(*p==' '||*p=='\t'||*p=='\n')
word=0;
else if(word==0){
*nl++;
……
这里的*nw++跟*nl++有木有写翻了?

经过我的修改,现在貌似很不错了,在turbo c 2.0下:

#include "stdio.h"
void input (char *s){
char c;
printf("input text \n");
c=getchar();
while(c!=EOF){
*s++=c;
c=getchar();
}
*s='\0';
}
void count(char *s,int *nw,int *nl){
char *p=s;
int word=0;
*nw=*nl=0;
while(*p!='\0'){
if(*p=='\n'){
(*nl)++;//dodo has edited this
}
if(*p==' '||*p=='\t'||*p=='\n'){
word=0;
}
else if(word==0){
(*nw)++;//dodo has edited this
word=1;
}
p++;
}
}
void output(char *s){
puts(s);
}
void main(){
char s[80];
int nw,nl;
input(s);
count(s,&nw,&nl);
output(s);
printf("\n text words %d,line %d \n",nw,nl);
getchar();//dodo has added this
}

/*
执行演示:
input text
the capital of
china
beijing
china
i love china
^Z
the capital of
china
beijing
china
i love china

text words 9,line 5

*/
shine1991
科技发烧友

2011-07-13 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
先解决结束输入的问题
输入这些后
the capital of
china
beijing
I love
china

先换行,然后按Ctrl+z,会显示^Z,然后回车,就可以了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hlx7kj9m77
2011-07-14 · TA获得超过352个赞
知道答主
回答量:46
采纳率:0%
帮助的人:46.6万
展开全部
Ctrl+z或Ctrl+d
可以结束,
取决于输入EOF的设定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
恒富盛
2011-07-13
知道答主
回答量:33
采纳率:0%
帮助的人:18.2万
展开全部
更多资料可登录松翰单片机论坛:http://www.sonix-mcu.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式