一.設計思路
1.由于題設中給出條件“水王”的發貼數超過清單中總發貼數的一半,那麼我們給每一個ID加一個權值,用來權衡它是否是水王
2.如果ID相同,權值加1,不同則權值減1
3.權值小于0時改變水王的身份。
二.程式代碼
#include <iostream>
#include<string>
using namespace std;
#define N 100
int main() {
int n, i, X[N];
string ID[N], water;
cout << "請輸入文章總數:" << endl;
cin >> n;
cout << "請輸入文章序号以及其相對應的ID:" << endl;
for (i = 0; i<n; i++)
{
cin >> X[i];
cin >> ID[i];
}
cout << "文章表為:" << endl;
cout << "序号" << '\t' << "ID" << endl;
for (i = 0; i<n; i++)
{
cout << "\t" << X[i] << '\t' << ID[i] << endl;
}
//假設水王是第一個
water = ID[0];
int quanzhi = 0;
for (i = 1; i<n; i++)
{
if (quanzhi >= 0)//如果權值大于0,對權值進行操作
{
//ID相同,權值增加
if (water == ID[i])
quanzhi++;
//ID相同,權值減少
else
{
quanzhi--;
}
}
//如果權值小于0,改變水王的身份
else
water = ID[i];
}
cout << "水王就是:" << water << endl;
}
三.程式截圖