Nombre aleatoire entre deux valeurs

Soyez le premier à donner votre avis sur cette source.

Vue 7 045 fois - Téléchargée 251 fois

Description

Une fonction qui retourne un nombre aleatoire en deux valeurs

Source / Exemple :


#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <conio.h>

int RandomBetween(int a,int b)
{
return a + (random(a - b + 1));
}

int main(void)
{
int i;

randomize();

for(i=0;i<20;i++)
	{
	int a,b;

	a = RandomBetween(-99,99);
	b = RandomBetween(-99,99);

	/* on doit avoir a < b  */
	if(a > b)
		{
		/* on echange les valeurs */
		int tmp;

		tmp	= a;
		a	 = b;
		b		= tmp;
		}

	printf("RandomBetween(%d,%d) = %d\n",a,b,RandomBetween(a,b));
	}

printf("Appuyer sur une touche pour quitter le programme ...\n");
getch();
return 0;
}

Conclusion :


REMARQUE :
le faite de changer a et b car a doit etre inferieur à b.
ceci est preferable en fait de la mettre dans la fonction elle-meme !
ici je l'ai mise dans le main car lorsque l'on affiche a l'ecran il est plus visible de mettre dans l'ordre directement.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
NW4O Messages postés 8 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 24 février 2004
31 juil. 2003 à 15:50
Pas superla fonction dans le mesure ou Random n'est pas standard et c'est une fonction Borland je crois (pas sur).
T'aurais du utiliser srand(time(NULL)) ; pour initialiser le générateur, puis rand() pour générer le nb aléatoire !

NW
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
31 juil. 2003 à 15:57
Non, en Visual C
elle existe aussi !
srand(time(NULL)); est equivalent a randomize();
Le_Ronan Messages postés 3 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 26 juin 2007
28 nov. 2004 à 19:22
(?) Ne pourrait-on pas écrire :


/* on doit avoir a < b */
if(a > b)

printf("RandomBetween(%d,%d) = %d\n",b,a,RandomBetween(b,a))

else
printf("RandomBetween(%d,%d) = %d\n",a,b,RandomBetween(a,b));


J'attends vos remarques...

Merci.
fred100582 Messages postés 37 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 6 décembre 2005
24 mars 2005 à 16:49
Est-ce que qq'un sait s'il serait possible d'appliquer un masque dans ce programme car je travaille sur un prog assez gourmand en ressources et j'ai peur que l'accumulation de random ne le fasse vraiment ramer?

Merci.
Kypper_667 Messages postés 15 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 10 octobre 2008
10 mai 2008 à 23:48
Bravo ! Ca mérite un 10/10...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.