panzer Posted July 27, 2006 at 12:51 PM Report #40545 Posted July 27, 2006 at 12:51 PM Boas a todos tava a tentar fazer um Drugwars em C so que me faltam algumas coisas.. Alguem me sabe dizer o codigo para gerar números aleatórios de x a y? e já agora gostava tambem de saber como se faz para limpar a tela se é que isso é possivel. Thx cumprimentos
Rui Carlos Posted July 27, 2006 at 01:37 PM Report #40556 Posted July 27, 2006 at 01:37 PM int getRandom(int min,int max) { int r; long num; time(&num); srand((unsigned)num); r=min+rand()%(max-min+1); return r; } acho que isto serve... para limpar a tela, em Unix, normalmente faz-se 'system("clear");'. Rui Carlos Gonçalves
panzer Posted July 27, 2006 at 04:18 PM Author Report #40586 Posted July 27, 2006 at 04:18 PM thanks a lot so que a cena de limpar a tela não funciona comigo... sabes o que puderá ser?
Warrior Posted July 27, 2006 at 06:02 PM Report #40605 Posted July 27, 2006 at 06:02 PM Sim, estás em windows e o correcto é system("cls"); Contudo, isso é de evitar pois depois o programa nao é portável para outros sistemas
Saco Posted July 27, 2006 at 11:33 PM Report #40657 Posted July 27, 2006 at 11:33 PM Já agora uma duvida... se eu meter essa função num ciclo for simples do tipo for (i=0;i<100;i++) { t = getRandom(0,9); ++vector[t]; } Ele gera sempre o mesmo número... suponho que seja devido ao facto de a função srand usar o tempo... não há por enquanto maneira de gerar números aleatórios sem depender do tempo pois não?
Rui Carlos Posted July 28, 2006 at 12:09 AM Report #40668 Posted July 28, 2006 at 12:09 AM eu só sei gerar números aleatórios desta maneira, mas programas como o Mathematica não têm este problema, por isso deve haver maneira de o contornar (quando tiver tempo, vou ver se investigo um pouco sobre isso...) Rui Carlos Gonçalves
entering Posted July 30, 2006 at 10:02 PM Report #41168 Posted July 30, 2006 at 10:02 PM #include <stdio.h> #include <time.h> #include <stdlib.h> int seed; int trand (void) { return(1+(rand()%(10-0)+0)); } int main (void) { int i; seed=time(NULL); srand(seed); for (i=0;i<100;i++) printf ("%i\n",trand()); return 0; } gera sempre o mesmo número porque a função srand so deve ser usada uma vez no inicio e nao de cada vez que queres um numero. é um erro comum. espero ter ajudado
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