Rechercher : dans
Par :

[C] Nombre aléatoires

Dernière réponse le 26 mai 2006 à 09:54:33 Niklas, le 24 mai 2006 à 08:48:33 
 Signaler ce message aux modérateurs

Bonjour,

j'aurais besoin d'aide pour coder une fonction qui fasse ceci.

Cette fonction doit donner 3 nombres aléatoires compris entre 0 et 100 puis mettre les nombres sortis dans une chaine de caractères séparés par des virgules.
La fonction renverra la chaine crée.

Par exemple :
si on a comme chiffre : 3 7 78
La chaine crée devra être chaine = "3,7,78"

Merci d'avance

Meilleures réponses pour « [C] Nombre aléatoires » dans :
Générer des nombres aléatoires efficacement avec rand() Voir Générer des nombres aléatoires efficacement avec rand() Vous avez peut-être remarqué qu'en C, en utilisant la fonction rand() de la bibliothèque standard, vous obtenez des résultats décevants, trop souvent les mêmes. Prenons un exemple, vous...
Vérifier si un nombre entier est un nombre premier en C VoirDéfinition nombre premier Algorithme 1 : les diviseurs compris entre 2 et N-1 seront testés Algorithme 2 : les diviseurs pairs ne seront pas testés, la recherche se limitant aux diviseurs impairs Algorithme 3 : les diviseurs impairs jusqu'à la...
Les tableaux en langage C++ VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
Les classes en langage C++ VoirLa notion d'objet Le langage C est un langage procédural, c'est-à-dire que c'est un langage permettant de définir des données grâce à des variables, et des traitements grâce aux fonctions. L'apport principal du langage C++ par rapport au...

1

kurushi, le 26 mai 2006 à 00:43:46

Bonsoir niklas!

je viens t'apporter ta solution!!!!!
j'ai développé une fonction répondant à tes besoins!

Cependant, on pourait l'améliorer comme la paramétrer avec le nombre de valeurs voulues et l'espace de génération aléatoire...
mais je te l'ai codée en brut avec le main qui va avec. La voici (testée sous dos avec builder c++ 5.02 mais compatible tout bon ide de c respectant la norme ANSI) :
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>

char * randomize3numbers(void)
{

char buffer[11];
char tmp1[3];
char tmp2[3];
char tmp3[3];
int number = 0;

int numValeur = 1;
bool chaineOk = false;


while(!chaineOk)
{
switch(numValeur)
{
case 1:
randomize();
number = rand() % 101;/*valeur entre 0 et 100*/
itoa(number,tmp1,10);
printf("number1 = %d",number);
strcpy(buffer,tmp1);
strcat(buffer,",");
numValeur++;
break;
case 2:
number = rand() % 101;
itoa(number,tmp2,10);
printf("number2 = %d",number);
strcat(buffer,tmp2);
strcat(buffer,",");
numValeur++;
break;

case 3:
number = rand() % 101;/*valeur entre 0 et 100*/
itoa(number,tmp3,10);
printf("number3 = %d",number);
strcat(buffer,tmp3);
strcat(buffer,"\0");
chaineOk = true;
break;

}/* fin switch */
}/* fin de ton test si chaine constituée */

return buffer;
} /* fin de ta fonction */


/* ton test :) */
int main(void)
{

char machaine[11];
char * chaine_recue = randomize3numbers();
strcpy(machaine,chaine_recue);
printf("ma chaine est : %s",machaine);
free(chaine_recue);
getch();
return 0;

}

Répondre à kurushi

2

jipicy, le 26 mai 2006 à 08:08:17

Salut,

Regarde là aussi : http://www.commentcamarche.net/forum/affich-2247666-c-tirage­-aleatoire#3

;-)) Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

3

kurushi, le 26 mai 2006 à 09:33:39

Bonjour Jipicy,

Sans vouloir vous contredire,l'exemple que vous fournissez, n'est il pas quelque peu "juste"?

Et puis fournir la structure et le code encapsulé dans une fonction peut faciliter la compréhension...

Il ne s'agit pas du tout d'une offense, Jipicy, soyez en sur mais d'une remarque toute basique...

Respectueusement à Niklas & Jipicy, kurushi

Répondre à kurushi

4

 jipicy, le 26 mai 2006 à 09:54:33

Salut kurushi,

Pas d'offense, loin de là même ;-))

Je ne faisais juste que donner un lien vers un problème similaire. A notre ami Niklas de faire son choix parmi celle qui lui apportera le plus de satisfaction.

Je n'y connais rien en "langage C" et je ne doute pas un seul instant que ta proposition est de loin la plus instructive et la plus adéquate...

Bonne journée ;-)) Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy