由於一直不能ac先發這裏,但願有看到的大佬能指點一二。數組
先講一下個人基本思路,首先將一整行數據保存在數組中,接着遍歷數組,根據空格將每一個單詞存入二維數組中,最後遍歷二維數組,找出其中不一樣的單詞並計數。spa
1 #include<stdio.h> 2 #include<string.h> 3 4 int cmp(char s[]){ 5 char o[100][100],p[100][100]; //定義兩個二維數組,第一個用於存放全部單詞,第二個用於遍歷第一個數組,將其中不一樣的單詞存入第二個中 6 int i,len,j=0,k=0,count,num=0,flag; 7 len = strlen(s); 8 for(i=0;i<len;i++){ //遍歷輸入的字符串,根據空格將每一個單詞存入第一個二維數組 9 if(s[i]==' '){o[j][k]='\0';j++;k=0;continue;} 10 else{o[j][k++] = s[i];} 11 12 } 13 o[j][k]='\0';count=0; 14 for(i=0;i<=j;i++){ //遍歷第一個數組,將不一樣的單詞存入第二個二維數組 15 flag = 0; 16 for(num=0;num<=count;num++){ 17 if(strcmp(o[i],p[num])==0){flag=1;break;} 18 } 19 if(flag==0){strcpy(p[count],o[i]);count++;} 20 } 21 return count; 22 } 23 24 int main(){ 25 char s[10000]; 26 int sum,k,m; 27 while(gets(s) && strstr(s, "#") == NULL){ 28 sum = cmp(s); 29 m=0; 30 for(k=0;k<strlen(s);k++){ //判斷若是輸入全爲空格,最後就輸出0 31 if(s[k]==' '){m++;} 32 } 33 if(m==strlen(s)){printf("0\n");} 34 else{printf("%d\n",sum);} 35 36 } 37 }
程序能夠成功運行,相關參數輸入也沒問題,就是不能ac,不知錯在哪裏了.....code