CS50复数,印刷赢家

fhity93d  于 2023-08-03  发布在  其他
关注(0)|答案(2)|浏览(82)
bool vote(string name)
{
    // TODO
    for (int i = 0; i < candidate_count; i++)
    {
        if (strcmp(candidates[i].name, name) == 0) //W's
        {
            candidates[i].votes++;
            return true;
        }
        else if (strcmp(candidates[i + 1].name, name) == 0)
        {
            candidates[i].votes++;
            return true;
        }
        else
        {
            return false;
        }
    }
    return 0;
}

// Print the winner (or winners) of the election
void print_winner(void)
{
    // TODO
    for (int i = 0; i < candidate_count; i++)
    {
        if (candidates[0].votes > candidates[i].votes)
        {
            printf("%s", candidates[0].name); // 0 = bob/ first
            break;
        }
        else
        {
            printf("%s\n", candidates[1].name);
        }
    }
}

字符串
我需要打印选举的赢家,但我似乎不能把我的头绕在这周围,任何帮助都将非常感谢,请不要给予我答案,我需要的Angular 来看,所以我可以弄清楚请不要只是交给我,与说我仍然需要的答案dumbed下来一点

ru9i0ody

ru9i0ody1#

以下是一些提示:

  • vote()函数中,应该测试每个候选名称,直到找到匹配。该循环迭代所有候选项,因此似乎没有必要在循环中一次测试多个候选项。
  • print_winner()函数中,您应该确定最佳分数,然后打印所有具有该分数的候选人,因为可能会有平局。您可以使用两个单独的循环来实现这一点。

要解决像这样的简单编程问题,想想你用笔和纸解决问题的步骤,把这些步骤分解成非常基本的任务,并把这些基本步骤翻译成C代码。

wj8zmpe1

wj8zmpe12#

这就像在一个数组中找到最大的数字。

相关问题