当前位置: 代码迷 >> C语言 >> [求助]计数。。。。。。。。。。。。
  详细解决方案

[求助]计数。。。。。。。。。。。。

热度:154   发布时间:2007-10-30 23:21:23.0
[求助]计数。。。。。。。。。。。。
这个程序不知怎地得不到预期的结果?

#include<stdio.h>
int main()
{
char word[100];
int letter,space,num,others,i;
letter=space=num=others=0;
printf("请输入一行字符:");
char c ;
gets(word);
for(i=0;(c=word[i])!='\n';i++);
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letter++;
else if(c>='0'&&c<='9')
num++;
else if(c==' ')
space++;
else others++;
}
printf("该行字符中英文字母有:%d\n 数字有:%d\n 空格有:%d\n 其他的字符有:%d\n",letter,num,space,others);
return(0);
搜索更多相关的解决方案: 计数  

----------------解决方案--------------------------------------------------------
这个程序不知怎地得不到预期的结果?

#include<stdio.h>
int main()
{
char word[100];
int letter,space,num,others,i;
letter=space=num=others=0;
printf("请输入一行字符:");
char c ;
gets(word);
for(i=0;(c=word[i])!='\n';i++);
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letter++;
else if(c>='0'&&c<='9')
num++;
else if(c==' ')
space++;
else others++;
}
printf("该行字符中英文字母有:%d\n 数字有:%d\n 空格有:%d\n 其他的字符有:%d\n",letter,num,space,others);
return(0);
}

----------------解决方案--------------------------------------------------------
你预期的结果是什么?
----------------解决方案--------------------------------------------------------
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))

----------------解决方案--------------------------------------------------------
c=word[i])!='\n'
这里错了知道吗
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main()
{
char word[100];
int letter,space,num,others,i;
letter=space=num=others=0;
printf("请输入一行字符:");
char c ;
gets(word);
for(i=0;(c=word[i])!='\n';i++);
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letter++;
else if(c>='0'&&c<='9')
num++;
else if(c==' ')
space++;
else others++;
}
printf("该行字符中英文字母有:%d\n 数字有:%d\n 空格有:%d\n 其他的字符有:%d\n",letter,num,space,others);
return(0);
}

for循环后多了个 分号;
大意啊:)
----------------解决方案--------------------------------------------------------
晕,贴的不对。
第一:for后面多了个分号;
第二:判断条件为 \0 字符串结束标志。
----------------解决方案--------------------------------------------------------
我觉得应该是  (c=word[i])!='\0'

----------------解决方案--------------------------------------------------------
(c=word[i])!='\n'改为'\0',因为最后一个字符是不可能等于回车的。


----------------解决方案--------------------------------------------------------
  相关解决方案