程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> zzuli oj 1178 單詞數,zzulioj

zzuli oj 1178 單詞數,zzulioj

編輯:C++入門知識

zzuli oj 1178 單詞數,zzulioj


Description

  統計一篇文章裡不同單詞的總數。

Input

  有多組數據,每組一行,每組就是一篇小文章。每篇小文章都是由小寫字母和空格組成,沒有標點符號,遇到#時表示輸入結束。

Output

  每組只輸出一個整數,其單獨成行,該整數代表一篇文章裡不同單詞的總數。

Sample Input

  you are my friend   #

Sample Output

  4

 

第一次寫的時候沒看清題  (不同單詞)   導致WA了一發··

思路理清楚後也不是什麼難題,用二維數組來記錄一行句子中的各個單詞,每個單詞後要加\0  

最後每個單詞都與它前面的各個單詞對比,沒有相同的話就count++啦

#include <iostream>
#include <cstdio>
#include <cstring>

char word[2000][2000];
char s[1000000];
int main(int argc, char** argv)
{
    while(gets(s),s[0]!='#')
    {
        int t=0,l=0;
        int len=strlen(s);
        int i=0;
        while(i<len)
        {
            if(s[i]==' ')
            {
                while(s[i]==' ')
                    i++;
            }
            else
            {
                while(s[i]!=' '&&s[i]!='\0')
                    word[t][l++]=s[i++];    //將單詞存入二維組
                word[t][l]='\0';     //別忘記在單詞末尾加上\0
                t++;
                l=0; 
            }
        }
        
        /*接下來進行篩選*/
        int count=0;
        int flag=0;
        for(int j=0;j<t;j++)
        {
            flag=0;
            for(int k=0;k<j;k++)
            {
                if(strcmp(word[k],word[j])==0)//如果找出此單詞與前面某個單詞相同,則不計入單詞數 
                    flag=1;
            }
            if(flag==0)
                count++;
        }
        
        printf("%d\n",count);
    }
    return 0;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved