数组问题帮忙找下错
输入一行英文句子,统计其中的单词个数。例如,输入”How are you.”,则输出3#include <stdio.h>
#include <string.h>
int main(void)
{
int a,b,i,n;
char str;
gets(str);
b=strlen(str);
for(i=0;i<b;i++)
{
if(str==' ')
{
n++;
}
printf("%d",n);
return 0;
}
}
本帖最后由 番杰 于 2021-11-28 20:16 编辑
你的n在定义的时候没有赋值为0;
所以打印出来的值会是一个随机数;
另外后面的printf();和return 0;应该写在for循环的外面;
再另外,在打印n的值时需要加一;
就以输入“how are you”为例;这个字符串中只有两个‘ ’(空格),但是却有三个单词,单词数会比空格数多一,所以结果加一。
你的代码修改后:
#include <stdio.h>
#include <string.h>
int main(void)
{
int a,b,i,n = 0;//赋初值
char str;
gets(str);
b=strlen(str);
for(i=0;i<b;i++)
{
if(str==' ')
{
n++;
}
}
printf("%d\n",n+1);//加一
return 0;
}
我自己写的代码:
#include <stdio.h>
#include <string.h>
int main(void)
{
int n = 0,ch;
printf("请输入字符串:");
while((ch=getchar())!='\n')
{
if(ch == ' ')
n++;
}
printf("%d",n+1);
return 0;
} #include <stdio.h>
#include <string.h>
int main(void)
{
int a,b,i,n;
char str;
gets(str);
b=strlen(str);
for(i=0;i<b;i++)
{
if(str==' ')
{
n++;
}
printf("%d",n);
//return 0;
}
return 0;
} 番杰 发表于 2021-11-28 19:59
你的n在定义的时候没有赋值为0;
所以打印出来的值会是一个随机数;
谢谢了,就是n没有赋值{:10_303:} 本帖最后由 basketmn 于 2021-11-28 20:19 编辑
楼上两位写的都不太对哦
输入asdljk aslasdl salk sadljk,你看看结果
PS:我也不会写
页:
[1]