Tableaux en C, nombres aléatoires
Fermé
Xiqyti
-
1 avril 2009 à 00:10
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 5 avril 2009 à 23:59
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 5 avril 2009 à 23:59
A voir également:
- Tableaux en C, nombres aléatoires
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- À l’aide des tableaux ci-dessous, trouvez le mot dont le code ascii est le suivant : 72 65 6a 6f 69 6e 64 72 65 - Forum C
- Citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum LibreOffice / OpenOffice
- Code binaire des nombres - Guide
5 réponses
HackStyle
Messages postés
30
Date d'inscription
mercredi 1 avril 2009
Statut
Membre
Dernière intervention
12 avril 2009
9
5 avril 2009 à 23:45
5 avril 2009 à 23:45
Mdrrrrrr! Je suis vraiment une mule moi!
Désolé fiddy!
Désolé fiddy!
HackStyle
Messages postés
30
Date d'inscription
mercredi 1 avril 2009
Statut
Membre
Dernière intervention
12 avril 2009
9
5 avril 2009 à 23:14
5 avril 2009 à 23:14
Euh... j'ai pas tout lus par manque de temps mais je peut te faire un ptit code pour t'aider.
Tien :
#include <cstdio> // ou #include <iostream>
#define TAB_MAX 10;
#define MAX_GEN 12;
unsinged long genere_nb(unsigned long mx=1)
{
return (((double)(rand())/RAND_MAX)*mx+1)
}
using namespace std;
int main(void)
{
unsigned long content[TAB_MAX];
for(unsigned int i=0; i<TAB_MAX; i++)
{
unsigned int nb_genere = genere_nb(MAX_GEN);
for(unsigned int _i=0; _i<i;)
{
if ( content[i] == nb_genere)
{
nb_genere = genere_nb(MAX_GEN);
_i=0;
continue;
}
_i++;
}
content[i] = nb_genere;
}
}
Voila! Si y'a des erreurs dite le moi car je l'est fait avec l'editeur de message, je l'est pas tester ;)
Tien :
#include <cstdio> // ou #include <iostream>
#define TAB_MAX 10;
#define MAX_GEN 12;
unsinged long genere_nb(unsigned long mx=1)
{
return (((double)(rand())/RAND_MAX)*mx+1)
}
using namespace std;
int main(void)
{
unsigned long content[TAB_MAX];
for(unsigned int i=0; i<TAB_MAX; i++)
{
unsigned int nb_genere = genere_nb(MAX_GEN);
for(unsigned int _i=0; _i<i;)
{
if ( content[i] == nb_genere)
{
nb_genere = genere_nb(MAX_GEN);
_i=0;
continue;
}
_i++;
}
content[i] = nb_genere;
}
}
Voila! Si y'a des erreurs dite le moi car je l'est fait avec l'editeur de message, je l'est pas tester ;)
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
5 avril 2009 à 23:18
5 avril 2009 à 23:18
J'ai pas non plus regardé ton code, mais déjà je vois deux fautes.
#define TAB_MAX 10;
#define MAX_GEN 12;
Pas de points virgules dans le define ;-)).
#define TAB_MAX 10;
#define MAX_GEN 12;
Pas de points virgules dans le define ;-)).
HackStyle
Messages postés
30
Date d'inscription
mercredi 1 avril 2009
Statut
Membre
Dernière intervention
12 avril 2009
9
5 avril 2009 à 23:19
5 avril 2009 à 23:19
Ah ouais c'est vrai.
Mais je pense que c'est les seuls
Mais je pense que c'est les seuls
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
5 avril 2009 à 23:28
5 avril 2009 à 23:28
Salut,
Déjà, il ne faut pas mélanger le code C et le code C++. Cela peut produire des incompatibilités. De toute façon, ça peut pas être du C vu que tu utilises cin ^^.
Ensuite le rand() tout seul après le srand(), ne sert à rien. Cela éliminera juste la première valeur de la liste de nombre.
Ensuite l'opérateur d'égalité est le double égal ==. Si tu fais un simple égal, cela fera une affectation et cela renverra 1 (donc vrai) si la valeur est différente de 0.
Sinon pour générer des valeurs aléatoires en un seul exemplaire, la meilleure façon est d'initialiser le tableau à la main. Et ensuite de mélanger le tableau en se basant sur les indices en faisant plusieurs itérations.
Cdlt
Déjà, il ne faut pas mélanger le code C et le code C++. Cela peut produire des incompatibilités. De toute façon, ça peut pas être du C vu que tu utilises cin ^^.
Ensuite le rand() tout seul après le srand(), ne sert à rien. Cela éliminera juste la première valeur de la liste de nombre.
Ensuite l'opérateur d'égalité est le double égal ==. Si tu fais un simple égal, cela fera une affectation et cela renverra 1 (donc vrai) si la valeur est différente de 0.
Sinon pour générer des valeurs aléatoires en un seul exemplaire, la meilleure façon est d'initialiser le tableau à la main. Et ensuite de mélanger le tableau en se basant sur les indices en faisant plusieurs itérations.
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
HackStyle
Messages postés
30
Date d'inscription
mercredi 1 avril 2009
Statut
Membre
Dernière intervention
12 avril 2009
9
5 avril 2009 à 23:34
5 avril 2009 à 23:34
Rholala !!
J'utilise pas de cin là et de plus c'est pour l'algo là pas pour la generation de nb.
Frenchement je sais pas comment les gents sont éduqués, je veux t'aider et toi tu me critique.
Et je sais meme pas pourquoi tu parle de cin ?
tien j'ai corriger quelques trucs :
#include <cstdio> // ou #include <iostream>
#include <cstdlib>
#include <time.h>
#define TAB_MAX 10
#define MAX_GEN 12
int genere_nb(int mx=1)
{
return (int)(((float) rand()/RAND_MAX*(mx+1)));
}
using namespace std;
int main(void)
{
srand(time(NULL));
unsigned long content[TAB_MAX];
for(unsigned int i=0; i<TAB_MAX; i++)
{
int nb_genere = genere_nb(MAX_GEN);
for(int _i=0;_i<i;_i++)
{
if ( content[_i] == nb_genere)
{
nb_genere = genere_nb(MAX_GEN);
_i=-1;
continue;
}
}
content[i] = nb_genere;
}
for ( unsigned int i=0; i<TAB_MAX; i++ )
{
fprintf(stdout,"%i",content[i]);
}
return 0;
}
Me casse pas la tête avec tes debilités.
Ciao!
EDIT: Merci c'est pas pour les chiens mais bien pour les humains
J'utilise pas de cin là et de plus c'est pour l'algo là pas pour la generation de nb.
Frenchement je sais pas comment les gents sont éduqués, je veux t'aider et toi tu me critique.
Et je sais meme pas pourquoi tu parle de cin ?
tien j'ai corriger quelques trucs :
#include <cstdio> // ou #include <iostream>
#include <cstdlib>
#include <time.h>
#define TAB_MAX 10
#define MAX_GEN 12
int genere_nb(int mx=1)
{
return (int)(((float) rand()/RAND_MAX*(mx+1)));
}
using namespace std;
int main(void)
{
srand(time(NULL));
unsigned long content[TAB_MAX];
for(unsigned int i=0; i<TAB_MAX; i++)
{
int nb_genere = genere_nb(MAX_GEN);
for(int _i=0;_i<i;_i++)
{
if ( content[_i] == nb_genere)
{
nb_genere = genere_nb(MAX_GEN);
_i=-1;
continue;
}
}
content[i] = nb_genere;
}
for ( unsigned int i=0; i<TAB_MAX; i++ )
{
fprintf(stdout,"%i",content[i]);
}
return 0;
}
Me casse pas la tête avec tes debilités.
Ciao!
EDIT: Merci c'est pas pour les chiens mais bien pour les humains
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
5 avril 2009 à 23:43
5 avril 2009 à 23:43
Du calme lol. Faut pas se sentir viser comme ça ^^.
D'une part, ce n'est pas l'auteur qui parlait mais un autre "helper" (en l'occurence moi), et d'autre part je ne parlais pas de ton code mais du sien.
D'une part, ce n'est pas l'auteur qui parlait mais un autre "helper" (en l'occurence moi), et d'autre part je ne parlais pas de ton code mais du sien.
5 avril 2009 à 23:59