杭電oj2072

由於一直不能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

相關文章
相關標籤/搜索