O professor falou que o numero randomico vai de 0 até qtddepalavras - 1,não entendi do pq desse -1,a parte do código é essa int randomico = rand() % qtddepalavras,alguém poderia me explicar esse -1?
O professor falou que o numero randomico vai de 0 até qtddepalavras - 1,não entendi do pq desse -1,a parte do código é essa int randomico = rand() % qtddepalavras,alguém poderia me explicar esse -1?
Olá Vitor,
A operação a % b
representa o resto da divisão de a
por b
. Se analisarmos uma sequência de resultados do uso desse operador, conseguimos chegar na resposta para sua dúvida:
0 % 3 = 0
1 % 3 = 1
2 % 3 = 2
3 % 3 = 0
4 % 3 = 1
5 % 3 = 2
6 % 3 = 0
7 % 3 = 1
Perceba que nessa sequência, o resto da divisão nunca pode ser igual a 3. Se o resto for igual a 3, então daria pra aumentar 1 no resultado da divisão e o resto voltaria a ser 0.
Então quando escrevemos rand() % qtddepalavras
, o resto da divisão nunca vai poder ser exatamente igual a qtddepalavras
. O valor máximo que ele pode alcançar é qtddepalavras - 1
, assim como no exemplo acima. Como querendo o resto da divisão por 3, nunca teremos o resultado 3. Só conseguimos chegar até 2 (3 - 1).