此题注意两以下两点即可ac。
1.注意空格的数量不一定是一个
2.注意统计不同单词的个数
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char a[10000],b[1000][100];
int i,j,m,n,l,sum,p,q;
while(cin.getline(a,10000)&&a[0]!='#')
{
sum=0;
i=j=m=0;
while(a[i]!='\0')
{
if(a[i]!=' ')
{
for(j=i,n=0;a[j]!='\0'&&a[j]!=' ';j++,n++)
b[m][n]=a[j];
b[m][n]='\0';
m++;
i=j;
}
else
i++;
}
for(p=1;p<=m;p++)
{ q=1;
for(l=0;l<p;l++)
if(strcmp(b[p],b[l])==0)
{ q=0;break;
}
if(q==1)
sum++;
}
cout<<sum<<endl;
}
return 0;
}
http://acm.hdu.edu.cn/showproblem.php?pid=2072 (题目网址)
***********附上输入数据(括号里的)*****************
1." "
0
2." asdf as a"
3
3." asdf asdf ds"
2
4."asdf asdf "
1
5.直接输回车
0