Camila Oliveira Posted September 21, 2018 at 01:13 PM Report #611914 Posted September 21, 2018 at 01:13 PM (edited) Bom dia, Fiz um código para sorteio de 50 Pokemons, mas ele escolhe apenas o primeiro nome do array. Como posso deixar aleatório? Eis o código: #include <stdlib.h> #include <stdio.h> int main() { char pokemon[51][15] = {"Bulbasaur","Venusaur","Charmander","Charmeleon","Charizard","Pidgey","Pidgeotto","Pidgeot","Pikachu","Raichu","Clefairy","Vulpix","Ninetales","Meowth","Psyduck","Golduck","Mankey","Primeape","Growlithe","Arcanine","Abra","Kadabra","Alakazam","Magnemite","Magneton","Onix","Cubone","Marowak","Staryu","Starmie","MrMime","Jynx","Magikarp","Gyarados","Lapras","Ditto","Eevee","Vaporeon","Porygon","Snorlax","Dragonair","Dragonite","Mewtwo","Mew","Chikorita","Sentret","Furret","Hoothoot","Lanturn","Pichu"}; int i; srand(time(NULL)); i = (rand() >> 11) % 3; printf ("%s",pokemon[i]); system ("Pause"); return 0; } Edited September 21, 2018 at 01:14 PM by Camila Oliveira
HappyHippyHippo Posted September 21, 2018 at 01:53 PM Report #611915 Posted September 21, 2018 at 01:53 PM podes explicar a razão esta instrução ? (rand() >> 11) % 3 ps : não quero saber o que pensas que faz ou o que deveria fazer, quero saber o que tu acahas que cada elemento da instrução faz para chegar ao resultado que pretendes IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Camila Oliveira Posted September 21, 2018 at 01:57 PM Author Report #611916 Posted September 21, 2018 at 01:57 PM (edited) Foi uma instrução que eu encontrei aqui mesmo no fórum e que, segundo o membro, tornaria a função mais aleatória por usar bits mais significativos.https://www.portugal-a-programar.pt/forums/topic/56684-sorteio-de-string-em-array/ Edited September 21, 2018 at 02:09 PM by Camila Oliveira correção
Camila Oliveira Posted September 21, 2018 at 04:35 PM Author Report #611917 Posted September 21, 2018 at 04:35 PM Consegui utilizando a biblioteca time.h e a função srand(time(NULL)) #include <stdlib.h> #include <stdio.h> #include <time.h> int main(){ char sorteio1[50][11] = {"Bulbasaur","Venusaur","Charmander","Charmeleon","Charizard","Pidgey","Pidgeotto","Pidgeot","Pikachu","Raichu","Clefairy","Vulpix","Ninetales","Meowth","Psyduck","Golduck","Mankey","Primeape","Growlithe","Arcanine","Abra","Kadabra","Alakazam","Magnemite","Magneton","Onix","Cubone","Marowak","Staryu","Starmie","MrMime","Jynx","Magikarp","Gyarados","Lapras","Ditto","Eevee","Vaporeon","Porygon","Snorlax","Dragonair","Dragonite","Mewtwo","Mew","Chikorita","Sentret","Furret","Hoothoot","Lanturn","Pichu"}; int i; srand(time(NULL)); i = rand() %50; printf ("%d\n",i); system ("Pause"); return 0; }
HappyHippyHippo Posted September 21, 2018 at 05:00 PM Report #611918 Posted September 21, 2018 at 05:00 PM 3 hours ago, Camila Oliveira said: Foi uma instrução que eu encontrei aqui mesmo no fórum e que, segundo o membro, tornaria a função mais aleatória por usar bits mais significativos.https://www.portugal-a-programar.pt/forums/topic/56684-sorteio-de-string-em-array/ Porque é que nunca respondem a pergunta... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now