Fonction rand dans un tableau 2d en c
tatouprog
Messages postés
6
Statut
Membre
-
Qwerti Messages postés 166 Statut Membre -
Qwerti Messages postés 166 Statut Membre -
Bonjour,
pouvez-vous m'aider à initialiser un tableau a 2 dimensions de maniere aléatoire?
pouvez-vous m'aider à initialiser un tableau a 2 dimensions de maniere aléatoire?
Configuration: Windows XP Internet Explorer 7.0
15 réponses
-
Pour un tableau 10x10 :
int tableau[10][10];
Ca te donne un tableau. Il y a des chances d'avoir des résidus "aleatoires" dans ce tableau. Mais si vraiment tu veux quelque chose de plus aléatoire, tu peux utiliser les fonctions rand() et srand()...
Dis-moi quel est ton niveau en C ?
Est-ce que tu veux la solution toute prete toute machée ?
Ou au contraire, es-tu pret(e) a chercher un peu ?
a+
-Qwerti. -
si tu sait utiliser la fonction rand() apres il faut que tu remplisse chaque case du tableau en le parcourant avec deux boucle for et dans chaque case tu met un nombre aleatoire avec rand()
bonne chance ;) -
Je suis débutante en programmation mais je suis pleine de bonne volonté
Voici, mon programme :
#include <iostream>
#include <algorithm>
#include <time.h>
using namespace std;
#define N 6
#define M 6
int main()
{
int i,j;
srand(time(NULL));
char tab[N][M] = {{'a','b','c','d','e','a'},{'a','b','c','d','e','a'}};
rand(M,N,tab*);
for(i = 0; i < N; i++){
for(j = 0; j < M; j++){
cout << tab[i][j] << " | ";
}
cout << endl;
return 0;
}
} -
ça ressemble plutot a du C++ ça...
ton exo c'est en C ou C++ ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
lol
c'est bien ce que je me disais...
dsl je connais pas la syntaxe exact du C++
mais a mon avis tu devrais pas initialiser le tableau au debut
et qd tu tire un nombre du lui affecte une letre par(exemple si tu a "1" tu considere que c'est "a" etc...)
ps : tu devrais peu etre changer le titre de ton post pour que des gens qui s'y connaissent mieux en C++ puisse t'aider
bonne chance ;) -
#include <iostream>
using namespace std;
#define N 6
#define M 6
// Table des caracteres :
#define TableLength 5
char* table[TableLength]={"a","b","c","d","e"};
int main(){
int i,j;
char* tab[M][N];
srand(time(NULL));
//Initialisation du tableau :
for(i = 0; i < N; i++) for(j = 0; j < M; j++) tab[i][j]=table[(rand()*TableLength)/RAND_MAX];
for(i = 0; i < N; i++){
for(j = 0; j < M; j++){
cout << tab[i][j] << " ";
}
cout << endl;
}
return 0;
}
C'est mieux comme ca !
Si tu as besoin d'explications je te les fournirai sans probleme !
a+
-Qwerti. -
Merci beaucoup pour ta correction. ça m'a permis de faire mon affichage.
Voici le code :
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
#define N 6
#define M 6
// Table des caracteres :
#define TableLength 5
char* table[TableLength]={" a "," b "," c "," d "," e "} ;
int main(){
int i,j;
char* tab[M][N];
srand(time(NULL));
//Initialisation du tableau :
for(i = 0; i < N; i++) for(j = 0; j < M; j++) tab[i][j]=table[(rand()*TableLength)/RAND_MAX];
for(i = 0; i < N; i++){
cout <<" +---+---+---+---+---+---+"<< endl;
cout <<6-i<< "|";
for(j = 0; j < M; j++){
cout << tab[i][j]<< "|";
}
cout << endl;
}
cout <<" +---+---+---+---+---+---+"<< endl;
cout <<" a b c d e f"<< endl;
return 0;
}
Maintenant, il faut que je m'attaque au fond.
Je dois construire un marble... -
Ravi d'avoir pu t'aider...
Mais, euh, paronne mon ignorance, c'est quoi un marble ?
a+
-Qwerti. -
c'est un solitaire dont le but est de supprimer un nombre maximum de billes (ici ce sont des lettres) en un minimum de coup.
-
Ah cool ! :-)
C'est quoi la condition pour pouvoir supprimer les billes ? -
il faut selectionner des lettres sur le plateau en notant leur coordonée (ex: 2f ou f2). Pour que le coup soit valide, la bille sélectionnée doit etre voisine d'au moin 1 bille de meme couleur (ici se sont des lettres). les billes voisines sont celle situé au dessus, en dessous, à droit et a gauche ( diagonale non admise) de la bille sélectionnée.
-
Ah d'accord !
Donc dans ce cas tu elimines toutes les billes qui on la meme lettre, d'un coup, c'est ca ?
Ex :
abace
cecad
cceba
cdcab
devient (j'elimine les c en bas a gauche --- je mets des points a la place)
ababe
.ecad
..eba
.dcab
Et justement, on en fait quoi des points maintenant ? Ils restent comme ca, cases vides ? Mais alors je ne pourrais jamais eliminer les deux c qui restent... :-/
Bon, en tout cas ca a l'air rigolo...
Tiens-nous au courant de tes avancées !
a+
-Qwerti. -
Les billes subissent un mouvement de gravité puis s'il y a des colonnes entierement vides un tassement vers la gauche.
Dans ton exemple, le tableau donnerai :
. . abe
. bcad
. eeba
adcab -
Ahhh d'accord ! Merci pour l'info tatouprog !
Alors je te souhaite bonne chance avec la programmation du Marble :-)
a+
-Qwerti.