you are my friend #
4
简直是够了,到处都是坑,好无语,就是因为我在统计完没有加上子字符串结束标志“\0”;一直WA,WA了好多次。。。。。。细节决定成败啊。。。。多努力。。。。。。
AC代码:
#include<stdio.h>
#include<string.h>
char b[1005][1005];
char c[1005];
int main(){
int i,j,len,k,t,sum;
while(gets(c)){
k=0;
t=0;
if(c[0]=='#'){break;}
len=strlen(c);
for(i=0;i<len;i++){
if(c[i]>='a'&&c[i]<='z'){ break;}
}//找到第一个不为字符的下标
if(i==len){ printf("0\n");continue;}
for(;i<len;i++){
if(c[i+1]>='a'&&c[i+1]<='z'&&c[i]==' '){
b[k][t]='\0';//特别重要的东西,没有就会WA
k++;
t=0;
}
if(c[i]>='a'&&c[i]<='z'){
b[k][t++]=c[i];
}
}
for(i=0;i<k+1;i++){
for(j=i+1;j<=k;j++){
if(strcmp(b[i],b[j])==0&&b[i][0]!='0'){
b[j][0]='0';
}
}
}//把相同的首位字符置为‘0’;
sum=0;
for(i=0;i<k+1;i++){
if(b[i][0]!='0'){
sum++;
}
}
printf("%d\n",sum);
}
return 0;
}
面对如此水题却可以WA那么多次。。。。。