在投票功能中,我不明白为什么如果我输入不同的选民姓名,它会给我一个分段错误而不是返回 false。
bool vote(int voter, int rank, string name)
{
if (strlen(name) > 0)
{
for (int i = 0 ; i < voter_count ; i++)
{
if (strcmp(candidates[i].name , copy) == 0)
{
preferences[voter][rank] = i;
return true;
}
}
}
return false;
我检查了相同问题集的其他代码,并且使用相同的代码,他们没有从检查器收到任何错误消息。
函数中使用变量
copy
表示添加了新的全局变量。这是规范明确禁止的,不会通过 check50
。
除了
和plurality.c
函数的实现(以及包含其他头文件,如果您愿意)之外,您不应修改vote
中的任何其他内容。print_winner