[英]CS50 pset3 Plurality: why does vote function not return false when given invalid candidate?
[英]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.