杭电2072

本人已经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;
}

你可能感兴趣的:(杭电)