本人已经ac了的代码!!
仅供参考!
此题注意两以下两点即可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;
}
另外请大家看看我这个代码为什么不能ac啊,我只改了一点点!
#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+1<<endl;//此处也改一下
}
return 0;
}