【发布时间】:2020-06-29 01:44:48
【问题描述】:
所以,我的代码有问题。程序需要从 4 个 printfs 中随机选择一个并在终端打印。我是新手,对此我深表歉意。
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main () {
setlocale (LC_ALL, "Portuguese");
int opcao;
opcao = rand() % 3 + 1;
if (opcao == 0) {
printf ("\nA opção sorteada foi a de que o 1º classificado atual será o campeão (FC Porto)");
}
if (opcao == 1) {
printf ("\nA opção sorteada foi a de que o 1º classificado na 1ª volta será o campeão (SL Benfica)");
}
if (opcao == 2) {
printf ("\nA opção sorteada foi a de que Porto e Benfica farão um jogo em campo neutro para determinar o campeão!");
}
if (opcao == 4) {
printf ("\nFoi sorteada a opção de que não haverá campeão esta época");
}
return 0;
}
这是我的代码,但只是永远选择相同的 printf。
【问题讨论】:
-
在使用 rand 之前先使用 srand。
-
注意这个表达式 opcao = rand() % 3 + 1;永远不等于 0。你应该使用 opcao = rand() % 4;
-
虽然这仍然无法处理以下情况:if (opcao == 4)
-
rand() % 5将返回值0-4。 modulo 运算符(例如%)与v = rand() % n;的结果始终为0 <= v < n。 -
一些
elses 可能也有帮助