69,382
社区成员
发帖
与我相关
我的任务
分享
char str[90];
char c;
int num=0,i;
printf("请输入一行英文\n");
gets(str);
for(i=0;i<90;i++)
if(str[0]==' '&&str[0]!='\0')
{ continue;}
else if(str[i]==' '&&str[i+1]!=' '&&str[i]!='0')
{
num++;
}
printf("%d\n",num);
给一个勉强看得去的吧 for(i=0;i<90;i++)
if(c==' ') // 你的c压根没被赋值
{ word=0;}
else if(word=0) // 就一个=号,成赋值了。等于0,永远是否
#include <stdio.h>
#include <Windows.h>
int main()
{
char string[90];
char c = NULL;
int word=0,num=0,i;
printf("请输入一行英文\n");
gets(string);
for(i=0;i< strlen(string); i++)
if(string[i] == ' ')
{
word=0;
continue;
}
else if(word==0)
{
word=1;
num++;
}
else
{
num++;
}
printf("%d\n",num);
return 0;
}
char str[90];
char c;
int word=0,num=0,i;
printf("请输入一行英文\n");
gets(str);
for(i=0;i<90;i++)
{
c = str[i];
if(c==' ')
{ word=0;}
else if(0 == word)
{
word=1;
num++;
}
}
printf("%d\n",num);
#include <stdio.h>
int main()
{
char string[90];
char c;
int word=1,num=0,i;
printf("请输入一行英文\n");
gets( string );
for( i=0; string[i]!='\0'; i++ ) /*不要用i<90,因为你不可能输入90个字符,所以改过来*/
{
if( string[i] != ' '&& (string[i+1]==' ' || string[i+1]=='\0') ) /*如果两个单词之间有多个空格,还有不能漏掉最后一个单词*/
{
word = 0;
}
if( word == 0 ) /*去掉else,如果有else的话,说明这个判断和前面的if是配对的,前面执行了就不能执行这个*/
{
word = 1;
num++;
}
}
printf("%d\n",num);
}
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
cout << "请输入一行英文:" << endl;
string line;
getline(cin, line);
istringstream stream(line);
string word;
int count = 0;
while(stream >> word)
{
++count;
}
cout << "单词的个数是:" << endl;
cout << count << endl;
return 0;
}
#include <stdio.h>
int main()
{
char string[90];
int word=-1,num=0,i;
printf("请输入一行英文\n");
gets(string);
for(i=0;i<90;i++)
{
if(string[i]==' '&& string[i+1]!=' ')
{
word=0;
}
if(word==0)
{
word=1;
num++;
}
}
printf("%d\n",num);
return 0;
}