C語言 色盲的民主

2021-09-07 10:08:55 字數 2203 閱讀 4139

演算法提高 色盲的民主  

時間限制:1.0s   記憶體限制:256.0mb

問題描述

n個色盲聚在一起,討論一塊布的顏色。儘管都是色盲,卻盲得各不相同。每個人都有自己的主張,爭論不休。最終,他們決定採取民主投票的方式決定布的顏色,不管布同不同意。某種顏色用字串表示(字串為顏色單詞或片語,也就是可能有被空格隔開的兩個單詞組成的顏色片語),只要字串不同,程式即判斷顏色不同。現在給出這n個人所選擇的顏色,輸出最有可能的顏色(也就是獲得投票最多的顏色),如果有多個顏色獲得了最多的投票,則將它們按字典序分行全部輸出。

輸入格式

第一行乙個正整數n,表示色盲的人數

接下來n行,每行一句話

輸出格式

若干行,獲得投票最多的顏色,按字典序輸出

樣例輸入 5

redblue

black

black

blue

樣例輸出

black

blue

資料規模和約定

n<=1000

顏色單詞最多20個字元,只包含小寫字母或者空格 注

對於char s[20],由於cin >> s是讀取到空格處便會結束,也就是對於light red,用cin只能輸入light。如果要整個輸入一行,則使用cin.getline(s, 20),其中20為這一行的最大長度,也就是你的s的容量,如果容量為30,則cin.getline(s, 30)。

另外,你在cin>>n以後cin.getline(s,30)應該會得到乙個空字串,這是因為整數n後面的換行符還未被輸入。

作者注釋:當看到「字典排序」,就想到用結構體,用qsort來做,還是掌握的不牢固,在大牛的指導下結合之前做過的題完成了**。思路和細節看**注釋。

1 #include2 #include

3 #include4 #include5 #include6

/*定義乙個結構體:包括定義顏色的名稱及其個數

*/7 typedef struct

colorcol;

11int cmp(const

void *a,const

void *b)else20}

21int

main()

36//

若已經存了,該顏色數量+1

37if(re!=j)

40//

若沒有存,此時存進去

41else46}

47//

排序 48 qsort(co,re,sizeof(co[0

]),cmp);

49for(int i=0;i)53}

54return0;

55 }

上述過程在思路上沒有問題,但是對於本題提交是不通過的——錯在資料的處理的細節上。

%s:格式化字串,不能接收回車換行空格符;

gets():用於從讀入乙個整行,以'\n'或eof結束;

getchar():用於讀入乙個字元,並返回這個字元.

對於本題:輸入n後有乙個換行,而且每個顏色後都有乙個換行,因此要注意用getchar()來接收換行,用gets(),接收資料。

1/*2

注意:%s不能接收空格、回車;

3getchar()可以消除回車、空格符;

4gets()一般與getchar()配合使用。 5*/

6 #include7 #include

8 #include9 #include10 #include11

/*定義乙個結構體:包括定義顏色的名稱及其個數

*/12 typedef struct

colorcol;

16int cmp(const

void *a,const

void *b)else25}

26int

main()

43//

若已經存了,該顏色數量+1

44if(re!=j)

47//

若沒有存,此時存進去

48else53}

54//

排序 55 qsort(co,re,sizeof(co[0

色盲的民主

題目描述 n個色盲聚在一 起,討論一塊布的顏色。儘管都是色盲,卻盲得各不相同。每個人都有自己的主張,爭論不休。最終,他們決定採取民主投票的方式決定布的顏色,不管布同不同 意。某種顏色用字串表示 字串為顏色單詞或片語,也就是可能有被空格隔開的兩個單詞組成的顏色片語 只要字串不同,程式即判斷顏色不同。現...

問題 色盲的民主

演算法提高 色盲的民主 時間限制 1.0s 記憶體限制 256.0mb 色盲的民主 問題描述 n個色盲聚在一 起,討論一塊布的顏色。儘管都是色盲,卻盲得各不相同。每個人都有自己的主張,爭論不休。最終,他們決定採取民主投票的方式決定布的顏色,不管布同不同 意。某種顏色用字串表示 字串為顏色單詞或片語,...

演算法提高 色盲的民主

題目鏈結 問題描述 n個色盲聚在一起,討論一塊布的顏色。儘管都是色盲,卻盲得各不相同。每個人都有自己的主張,爭論不休。最終,他們決定採取民主投票的方式決定布的顏色,不管布同不同意。某種顏色用字串表示 字串為顏色單詞或片語,也就是可能有被空格隔開的兩個單詞組成的顏色片語 只要字串不同,程式即判斷顏色不...