仔细的看了下,还是没有发现问题,没有统计打印的数量

lhjtianji 2011-11-16 03:53:58

#include <stdio.h>


#define IN 0 /*在单词内*/
#define OUT 1 /*在单词外*/
main(){
int c,nl,nw,nc,state;
state=OUT;
nl=nw=nc=0;
while((c==getchar())!=EOF){
++nc;
if(c=='\n')
++nc;

if(c==' '||c=='\n'||c=='\t')
state=OUT;

else if(state==OUT){
state=IN;
++nw;
}

}
printf("%d %d %d\n",nc,nl,nw);

}




...全文
144 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhjtianji 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 goldbeef 的回复:]

LZ把你的程序的目的是什么?看不懂?
[/Quote]

统计键盘输入的换行,字符,单词数目的
lhjtianji 2011-11-17
  • 打赏
  • 举报
回复
好了,谢谢,大家,这个问题总于解决了,果然是我的逻辑错了,结贴
雲哉 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 cloudzay 的回复:]

引用 15 楼 lhjtianji 的回复:

引用 14 楼 qq120848369 的回复:

C/C++ code
逻辑问题,应该在OUT时候+nw.

逻辑没有问题的,C/C++ code
#include <stdio.h>


#define IN 0 /*在单词内*/
#define OUT 1 /*在单词外*/
main(){
int c,……
[/Quote]
统计行数么。。把nc改成nl
雲哉 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 lhjtianji 的回复:]

引用 14 楼 qq120848369 的回复:

C/C++ code
逻辑问题,应该在OUT时候+nw.

逻辑没有问题的,C/C++ code
#include <stdio.h>


#define IN 0 /*在单词内*/
#define OUT 1 /*在单词外*/
main(){
int c,nl,nw,nc……
[/Quote]

#include <stdio.h>


#define IN 0 /*在单词内*/
#define OUT 1 /*在单词外*/
main(){
int c,nl,nw,nc,state;
state=OUT;
nl=nw=nc=0;
while((c=getchar())!=EOF){
++nc;
if(c=='\n')
++nl;

if((c==' ')||(c=='\n')||(c=='\t'))
state=OUT;

else if(state==OUT){
state=IN;
++nw;
}

}
return printf("%d %d %d\n",nc,nl,nw);

}

是这个问题么
lhjtianji 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 qq120848369 的回复:]

C/C++ code
逻辑问题,应该在OUT时候+nw.
[/Quote]
逻辑没有问题的,
#include <stdio.h>


#define IN 0 /*在单词内*/
#define OUT 1 /*在单词外*/
main(){
int c,nl,nw,nc,state;
state=OUT;
nl=nw=nc=0;
while((c=getchar())!=EOF){
++nc;
if(c=='\n')
++nc;

if((c==' ')||(c=='\n')||(c=='\t'))
state=OUT;

else if(state==OUT){
state=IN;
++nw;
}

}
return printf("%d %d %d\n",nc,nl,nw);

}
qq120848369 2011-11-17
  • 打赏
  • 举报
回复
逻辑问题,应该在OUT时候+nw.

goldbeef 2011-11-16
  • 打赏
  • 举报
回复
LZ把你的程序的目的是什么?看不懂?
lhjtianji 2011-11-16
  • 打赏
  • 举报
回复
真的要沉了么,问题还没有解决啊,求帮助
lhjtianji 2011-11-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lwjmdj 的回复:]

为什么main函数前没有void 或者int?
[/Quote]

我已经return了啊,还是没有啊,你的方法我刚才试了一下还是不行
lwjmdj 2011-11-16
  • 打赏
  • 举报
回复
为什么main函数前没有void 或者int?
lhjtianji 2011-11-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xxb_xxb 的回复:]

你按照2、3楼的都改了肯定行。
[/Quote]


#include <stdio.h>


#define IN 0 /*在单词内*/
#define OUT 1 /*在单词外*/
main(){
int c,nl,nw,nc,state;
state=OUT;
nl=nw=nc=0;
while((c=getchar())!=EOF){
++nc;
if(c=='\n')
++nc;

if((c==' ')||(c=='\n')||(c=='\t'))
state=OUT;

else if(state==OUT){
state=IN;
++nw;
}

}
return printf("%d %d %d\n",nc,nl,nw);

}
xxb_xxb 2011-11-16
  • 打赏
  • 举报
回复
你按照2、3楼的都改了肯定行。
lhjtianji 2011-11-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xxb_xxb 的回复:]

if(c=='\n')
++nc;
改成

if(c=='\n')
++nl;

if(c==' '||c=='\n'||c=='\t')
改成
if((c==' ')||(c=='\n')||(c=='\t'))
[/Quote]

还是不行啊
lhjtianji 2011-11-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dizuo 的回复:]

while((c=getchar())!=EOF){ // 这里一个等号,是赋值操作
[/Quote]

哦,我再看看
xxb_xxb 2011-11-16
  • 打赏
  • 举报
回复
我是来赚分数的,没有分下载用了
xxb_xxb 2011-11-16
  • 打赏
  • 举报
回复
if(c=='\n')
++nc;
改成

if(c=='\n')
++nl;

if(c==' '||c=='\n'||c=='\t')
改成
if((c==' ')||(c=='\n')||(c=='\t'))
ryfdizuo 2011-11-16
  • 打赏
  • 举报
回复
while((c=getchar())!=EOF){ // 这里一个等号,是赋值操作

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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