为啥c语言程序运行数据输入后回车无效

#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);

楼主的问题是语法跟逻辑不够清晰