軟體工程課堂訓練 找三個小水王

2022-05-26 17:30:13 字數 1611 閱讀 3671

一、題目描述

隨著論壇的發展,管理員發現水王沒有了,但是統計結果表明,有三個發帖很多的id。據統計他們的發帖數量超過了1/4,你能從發帖列表中快速找到他們嗎?

二、解決思路

沿用上次消除的思想,定義三個計數器和三個嫌疑水王,比較三個id,如果不相同,就排除,如果相同,那麼計數器加一。嫌疑水王id都與其它水軍id進行抵消最後剩下的就是三個水王。

三、程式**

//

shuiba.cpp : 定義控制台應用程式的入口點。

//#include

"stdafx.h

"#include

"iostream

"int

main()

;//計數器初始化為0

int id[3]=; //

水王id初始化為0

printf("

請輸入發帖的數量:");

scanf("%d

",&length);

int * shuiwang=new

int[length];

printf(

"請輸入所有發帖人的id:");

for(int j=0;j//

輸入id

for(int i=0;i//

找水王

else

if(idcou[1]==0 &&shuiwang[i]!=id[0] && shuiwang[i]!=id[2

])

else

if(idcou[2]==0 &&shuiwang[i]!=id[0] && shuiwang[i]!=id[1

])

else

if(shuiwang[i]!=id[0] && shuiwang[i]!=id[1] && shuiwang[i]!=id[2

])

else

if(shuiwang[i]==id[0

])

else

if(shuiwang[i]==id[1

])

else

if(shuiwang[i]==id[2

])

}printf(

"三個水王的id是:\n");

printf(

"%d\t%d\t%d\t\n

",id[0],id[1],id[2

]);

return0;

}

四、執行結果

五、心得體會

三個水王和乙個水王的問題有很多相似之處,但這個問題剛開始執行結果出來是錯誤的,後來找到了問題的原因,有一部分可能性忽略了。做完兩個找水王的練習之後,我覺得最牛的不是找到最優方法解決問題的人,而是那個幕後的出題者。

軟體工程課堂練習找水王續

題目 隨著論壇的發展,管理員發現水王沒有了,但是統計結果表明,有三個發帖很多的id。據統計他們的發帖數量超過了1 4,你能從發帖列表中快速找到他們嗎?思路 關聯型容器可以很方便解決,php裡的array就是關聯型陣列,php有很多方便的排序函式,所以本次用php實現。首先對id列表進行遍歷,以id為...

軟體工程課堂訓練 最便宜購書方案

一 實驗題目 某書店針對 哈利波特 系列書籍進行 活動,一共5卷,用編號0 1 2 3 4表示,單獨一捲售價8元,具體折扣如下所示 本數 折扣 2 5 3 10 4 20 5 25 根據購買的卷數以及本數,會對應不同折扣規則情況。單數一本書只會對應乙個折扣規則,例如購買了兩本卷1,一本卷2,則可以享...

課堂練習之《三個水王》

實驗題目 隨著論壇的發展,管理員發現水王沒有了,但是統計結果表明,有三個發帖很多的id。據統計他們的發帖數量超過了1 4,你能從發帖列表中快速找到他們嗎?實驗思路 跟上一次一樣,只不過是計數器由乙個變為了三個,定義陣列表示它們,由於據統計他們的發帖數量超過了1 4,可將每個水桶id都與其它水軍id進...