| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1250 人关注过本帖
标题:做了个简单的程序,请教下谢谢
只看楼主 加入收藏
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
收藏
 问题点数:0 回复次数:20 
做了个简单的程序,请教下谢谢

//计算输入的文本包含多少字符、单词、空格、行、不完整行。
#include<stdio.h>
#include<ctype.h>

int main(void)
{
long n_text=0; //字符数
int n_char=0; //单词数
char n_ch; //前一个字符,用于查看最后一句是否使用了换行字符
int n_enter=0; //行数
int n_no=0; //不完整行数
char ch; //要输入的字符
bool yn=false; //用于识别单词
char yynn='y';
while(yynn=='y')
{
printf("Plese enter text(\"|\"to quit):\n");
while((ch=getchar())!='|')
{
n_text++;
if(!isspace(ch)&&!yn)
{
yn=true;
n_char++;
}
if(isspace(ch)&&yn)
{
yn=false;
}
if(ch=='\n')
n_enter++;
n_ch=ch;
}
if(n_ch=='\n')
n_enter++;
printf("this text have %d chars,and %d words,and %d lines.\n",n_text,n_char,n_enter);
if(n_ch!='\n')
printf("this text have a partial lines.");
printf("\ndo you want to continue?(y/n)_\b");
yynn=getchar();
}
return 0;
}


见下下楼

[此贴子已经被作者于2006-8-10 10:48:59编辑过]

搜索更多相关主题的帖子: 单词 include false 
2006-08-10 09:48
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
HOO HOO

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-10 09:48
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
收藏
得分:0 

中间的程序就不劳虾们费脑了,运行无误,关键是第一个while循环,因为输入缓冲区的关系除非在输入TEXT的时候提前输入y,如: hello world! |y[enter],那个y才会赋给yynn,不然yynn='\n',想了个简单的办法,在程序倒数第四行yynn=getchar();前加了句getchar();这样\n会在getchar()消失;然后就可以给yynn赋值了(上面说的对不对?请指正).
因为我刚学,经验少,后面的好多语法还没学到,所以请问虾们有没有更好的解决办法?
另外问一下只有一个getchar();语句,输入的字符会跑到哪里去?
谢谢.


MSN:mr_zz@
QQ:284913258
计算机及应用专业
2006-08-10 10:00
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
收藏
得分:0 
斑竹占楼还真快

不过您这是啥意思.

郁闷,把头像改了

[此贴子已经被作者于2006-8-10 10:05:52编辑过]


MSN:mr_zz@
QQ:284913258
计算机及应用专业
2006-08-10 10:01
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
:济南钢铁厂????


====

xiong di , ni gong zuo le?

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-10 10:08
神经塔
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1986
专家分:4
注 册:2006-7-1
收藏
得分:0 

记住,有时要用到fflush(stdin);


[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]
2006-08-10 10:14
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
bool yn=false; //用于识别单词


=============
ni yong sha bian yi qi a?


日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-10 10:17
苍冥绝隐
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-8-10
收藏
得分:0 
个人观点:
printf("\ndo you want to continue?(y/n)_\b");
这一句应该换一个wait语句
具体怎么改我也不记得了要翻书

2006-08-10 10:17
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
收藏
得分:0 
上楼:还没学到 : )

上上楼:工作了,有什么问题吗

MSN:mr_zz@
QQ:284913258
计算机及应用专业
2006-08-10 10:18
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
wai mian de shi jie hao hun m?

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-10 10:18
快速回复:做了个简单的程序,请教下谢谢
数据加载中...
 
   



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

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