[求助]计数。。。。。。。。。。。。
这个程序不知怎地得不到预期的结果?#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',因为最后一个字符是不可能等于回车的。
----------------解决方案--------------------------------------------------------