【问题标题】:CS50 - PSET3 Run off - trouble understanding the vote function, more specifically what preferences[voter][rank] = i; doesCS50 - PSET3 Run off - 很难理解投票功能,更具体地说是什么偏好[投票者][排名] = i;做
【发布时间】:2021-12-21 08:55:03
【问题描述】:

我目前正在做 cs50 和 pset3,我遇到了这个棘手的问题集 Runoff 所以基本上,这是 vote() 函数的解决方案,它搜索特定的候选人并返回 true 并记录投票 如果使用决选式选举找到候选人,其中选民按排名顺序给出偏好,则二维数组 preferences 已经被初始化。 Candidates 是另一个包含候选人列表的数组

// Record preference if vote is valid
bool vote(int voter, int rank, string name)
{
    
    
    for (int i = 0; i < candidate_count; i++){
        if (strcmp(candidates[i].name,name)==0){
            preferences[voter][rank] = i;
            return true;
        }
    }

只是我真的很困惑

preferences[voter][rank] = i;

当找到这样的候选人/为真时执行。每次循环运行时 = i; 是什么意思?为什么不preferences[voter][rank]=candidates[i];

一直在努力解决这个问题,因为我无法真正理解它,任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: c cs50


    【解决方案1】:

    =i;是什么意思

    它将候选者的索引(读取:位置)存储在其各自的candidates 数组中。稍后,您可以使用此索引查找候选人的姓名。

    为什么不偏好[voter][rank]=candidates[i];

    因为(我假设)preferences 是一个二维的int(左右)数组。 当然,您也可以使用不同类型的数组并存储(例如)指向候选对象的指针。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      • 2020-12-12
      • 2012-10-29
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多