#include
int main()
{
int ch,i,count=0,flag=0;
char bb[1000];
printf("please input some words:");
gets(bb);
ch=bb[i];
for(i=0;ch!='\0';i++)
{
if(ch==' ')
flag=0;
else if(flag==0)
{
count++;
flag=1;
}
}
printf("单词个数为%d",count);
}
循环跟输入的数据无关
老铁,我没看错的话,你写的ch是int型的吧!
把else去掉就行拉
第一,把ch类型改了
第二,你所谓的无效调试一下就会发现是死循环,为什么,因为你的ch是固定不变的,你程序根本没有循环录入 如果ch开始不是'\0'会一直循环下去
第三,再仔细考虑一下连续空格的情况,否则不能正确返回单词个数
第四,程序排版要整齐
#include
int main()
{
int i,count=0,flag=0;
char ch;
char bb[1000];
printf("please input some words:");
gets(bb);
ch=bb[i];
for(i=0;ch!='\0';i++)
{
if(ch==' ')
{
count++;
}
}
printf("单词个数为%d",count);
}
而且你的ch=bb[i]应该放到for循环内
给你修改一下主函数里面改成
int i,count=0,flag=0;
char ch;
char bb[1000];
printf("please input some words:");
gets(bb);
for(i=0;i<strlen(bb);i++)
{
ch=bb[i];
if(ch=='\n')
break;
else if(ch==' ')
flag=0;
if(flag==0)
{
count++;
flag=1;
}
}
printf("单词个数为%d",count);
楼主的问题是语法跟逻辑不够清晰