繁体   English   中英

CS50 - PSET3 跑掉 - 无法理解投票功能,更具体地说,偏好[voter][rank] = i; 做

[英]CS50 - PSET3 Run off - trouble understanding the vote function, more specifically what preferences[voter][rank] = i; does

我目前在做 cs50 和 pset3,我遇到了这个棘手的问题集Runoff所以基本上,这是一个用于 vote() 函数的解决方案,该函数搜索特定候选人并返回 true 并记录投票,如果使用 runoff 找到候选人 -风格选举,其中选民按照排名顺序获得偏好,二维数组偏好已经初始化。 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;是什么意思= i; 每次循环运行时? 为什么不preferences[voter][rank]=candidates[i];

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

= i 是什么意思;

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM