| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 888 人关注过本帖
标题:[求助]请教两道习题!
只看楼主 加入收藏
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
你把你改进的程序发来我看看!

♂ 死后定当长眠,生前何须久睡。♀
2005-09-11 04:23
若凡
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2005-9-9
收藏
得分:0 
以下是引用303770957在2005-9-11 4:15:07的发言: 我建议你将:{int s,num,c,space,other;scanf("%s",&s);该为:{int num,c,space,other; char s[20];gets(s);因为你输入的是带空格的字符串用scanf("%s",&s);只能接收不带空格的字符串,而gets(s);就可以接收带空格的字符串,而且你写的s的接收格式不正确.
嗯,用你的方法的确可以达到目的 但是我就是想不明白为什么其他的字符都可以统计进去 就第一个字符统计不进去 而且空格也可以统计得很准确啊(只要第一个字符不是空格) 注:上面题目中写的scanf("%s",&s)写错了,是scanf("%c",&s),不好意思。

无语话凄凉
2005-09-11 04:26
若凡
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2005-9-9
收藏
得分:0 
以下是引用303770957在2005-9-11 4:23:16的发言: 你把你改进的程序发来我看看!
第一题按你所说的改成这样了 完全可以达到目的 第二题没改,还是最上面的 #include "stdio.h" #include "ctype.h" main() {int i,num=0,c=0,space=0,other=0; char s[20]; gets(s); for(i=0;i<=20;i++) {if(s[i]=='\0') break; else{ if(isdigit(s[i])) num++; else if(isalpha(s[i])) c++; else if(isspace(s[i])) space++; else other++; } } printf("the num is %d\;\nthe char is %d\;\nthe space is %d\;\nthe other is %d\n",num,c,space,other); }

无语话凄凉
2005-09-11 04:29
快速回复:[求助]请教两道习题!
数据加载中...
 
   



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

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