| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 747 人关注过本帖
标题:else的位置为什么会不对?
只看楼主 加入收藏
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
结帖率:100%
收藏
 问题点数:0 回复次数:6 
else的位置为什么会不对?

下面的这个程序是统计字母,数字.空格.还有其它字符的个数.....相信大家都比较熟吧.....不知道 为什么会出现这样的错误 ....总是提示最后一个ELSE在位置出错.....不知道为什么...我找了很久...没发现什么错的..请各位帮忙找一下....


int letter=0,digit=0,space=0,others=0;

void caculate(char *p)
{ int i;
for(i=0;i<=strlen(p);i++)
{if((*(p+i)>='a'&&*(p+i)<='z')||(*(p+i)>='A'&&*(p+i)<='Z'))
letter++;
else if(*(p+i)>='0'&&*(p+i)<='9')
digit++;
else if(*(p+i)==' ');
space++;
else others++;
}
}


main()
{char a[100];
printf("input the string:\n");
gets(a);
caculate(a);
printf("letter:%d digit:%d space:%d others:%d\n",letter,digit,space,others);
getch();
}

搜索更多相关主题的帖子: else 位置 
2006-11-19 20:07
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
以下是引用海蓝啸在2006-11-19 20:07:22的发言:

下面的这个程序是统计字母,数字.空格.还有其它字符的个数.....相信大家都比较熟吧.....不知道 为什么会出现这样的错误 ....总是提示最后一个ELSE在位置出错.....不知道为什么...我找了很久...没发现什么错的..请各位帮忙找一下....


int letter=0,digit=0,space=0,others=0;

void caculate(char *p)
{ int i;
for(i=0;i<=strlen(p);i++)
{if((*(p+i)>='a'&&*(p+i)<='z')||(*(p+i)>='A'&&*(p+i)<='Z'))
letter++;
else if(*(p+i)>='0'&&*(p+i)<='9')
digit++;
else if(*(p+i)==' ');
space++;
else others++;
}
}


main()
{char a[100];
printf("input the string:\n");
gets(a);
caculate(a);
printf("letter:%d digit:%d space:%d others:%d\n",letter,digit,space,others);
getch();
}

好象后边多了个分号


2006-11-19 20:17
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 

我看看

.....是的哦....晕死了.....这种错误太难发现了.......谢谢..

[此贴子已经被作者于2006-11-19 20:32:46编辑过]


这个社会太复杂。。。
2006-11-19 20:29
drift
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-8-15
收藏
得分:0 
版主好厉害
这样的错误都能看出来
我一开始看了半天都没发现

厉害厉害厉害啊

大道没人我怕谁!大道有人谁怕我! 黑夜给了我黑色的眼睛,我却用它翻白眼 !
2006-11-19 21:23
我是一匹好马
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2006-11-14
收藏
得分:0 
好像后面倒数第二行应为getchar(),漏掉了ar了。
2006-11-20 12:33
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 
不要ar,用getch()按任意键就能退出,用getchar()必须按回车才能退出

2006-11-20 13:09
财鸟
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2006-11-2
收藏
得分:0 
我靠!!!!!!这简单的问题!!!!!!!!!!!
你最后一个ELSE IF 后面跟了“;”!!!!!!!!!当然会出错!!!!!!!!!
这样就对了!!!!!!!!
else if(*(p+i)>='0'&&*(p+i)<='9')
digit++;
else if(*(p+i)==' ')
space++;
else others++;
2006-11-20 13:24
快速回复:else的位置为什么会不对?
数据加载中...
 
   



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

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