Nombre aleatoire entre deux valeurs

Soyez le premier à donner votre avis sur cette source.

Vue 6 584 fois - Téléchargée 216 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

Messages postés
15
Date d'inscription
samedi 22 mai 2004
Statut
Membre
Dernière intervention
10 octobre 2008

Bravo ! Ca mérite un 10/10...
Messages postés
4
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
6 mai 2006

Bonjour;
j'aimerais savoir comment choisir un nombre aléatoirement dans un interval fixe......Merci de me répondre c'est trés urgent..
Messages postés
37
Date d'inscription
mardi 20 avril 2004
Statut
Membre
Dernière intervention
6 décembre 2005

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.
Messages postés
3
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
26 juin 2007

(?) 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.
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
3
Non, en Visual C
elle existe aussi !
srand(time(NULL)); est equivalent a randomize();
Afficher les 6 commentaires

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.