A voir également:
- [lanc C] Comment créer un tableau 2D en C???
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Tableau croisé dynamique - Guide
- Comment faire un tableau - Guide
22 réponses
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
14 janv. 2008 à 01:05
14 janv. 2008 à 01:05
c'est tres simple ;)
int tab[4][4];
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
14 janv. 2008 à 01:08
14 janv. 2008 à 01:08
Salut,
Tu le déclares comme ça:
Et tu attribues les valeurs comme ça:
Ca mettra 5 dans la première ligne à la quatrième colonne.
Et pour des valeurs au hasard:
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/random.3.html
Tu le déclares comme ça:
int tab[4][4];
Et tu attribues les valeurs comme ça:
tab[0][3] = 5;
Ca mettra 5 dans la première ligne à la quatrième colonne.
Et pour des valeurs au hasard:
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/random.3.html
WAW reponse expresse merci!
encore une chose: pour accéder a la case 2 de la colonne 2 je tape quoi stp?
encore une chose: pour accéder a la case 2 de la colonne 2 je tape quoi stp?
OK merci beaucoup!
Vous sauriez comment remplir les cases au hazard avec des numéros sans mettre plusieur fois le meme numéro svp?
Vous sauriez comment remplir les cases au hazard avec des numéros sans mettre plusieur fois le meme numéro svp?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
14 janv. 2008 à 01:14
14 janv. 2008 à 01:14
Ben ya ça, mais ça ne marche que sur les processeurs Intel/Amd:
http://www.commentcamarche.net/faq/sujet 7070 generer des nombres aleatoires efficacement
Il ya des manières bien plus intelligentes pour avoir une bonne variation de génération de nombres aléatoires, mais je me suis pas trop penché là dessus.
http://www.commentcamarche.net/faq/sujet 7070 generer des nombres aleatoires efficacement
Il ya des manières bien plus intelligentes pour avoir une bonne variation de génération de nombres aléatoires, mais je me suis pas trop penché là dessus.
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
14 janv. 2008 à 01:28
14 janv. 2008 à 01:28
Juste en faisant int tab[4][4];
Tu devrais regarder un ptit cours de C, c'est tentant de brûler ce genre d'étape mais tu verras, tu seras plus à l'aise.
Tu devrais regarder un ptit cours de C, c'est tentant de brûler ce genre d'étape mais tu verras, tu seras plus à l'aise.
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
14 janv. 2008 à 01:38
14 janv. 2008 à 01:38
:-)
Tiens, regarde ici https://www.commentcamarche.net/contents/120-langage-c-les-tableaux dans la section tableaux multidimensionnels.
Tiens, regarde ici https://www.commentcamarche.net/contents/120-langage-c-les-tableaux dans la section tableaux multidimensionnels.
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
14 janv. 2008 à 02:01
14 janv. 2008 à 02:01
pour remplir ton tableau avec des pair differentes
tu peut initialiser toutes les case a 9
puis tu peux utiliser ce bout de code qui prends une case au hasard puis lui ajoute les 2 elements d'une pair
bien sur ne pas oublier d'utiliser avant srand(time(NULL)); pour eviter d'avoir le meme tableau a chaque lancement du programme...
bonne chance ;)
tu peut initialiser toutes les case a 9
puis tu peux utiliser ce bout de code qui prends une case au hasard puis lui ajoute les 2 elements d'une pair
bien sur ne pas oublier d'utiliser avant srand(time(NULL)); pour eviter d'avoir le meme tableau a chaque lancement du programme...
i=j=0; for(k=1;k<=8;k++) { while(tab[i][j]==0 || tab[i][j]<=8) { i=rand()%4; j=rand()%4; } tab[i][j]=k; while(tab[i][j]==0 || tab[i][j]<=8) { i=rand()%4; j=rand()%4; } tab[i][j]=k; }
bonne chance ;)
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
14 janv. 2008 à 02:48
14 janv. 2008 à 02:48
la fonction choisis des cases du tableau au hasard puis les remplis avec les 8 chiffres qui forment les pairs
for(k=1;k<=8;k++)
k designe le chiffre a rentré dans le tableau de 1 à 8
while(tab[i][j]<=8)
ça c'est pour eviter de rentrer un chiffre dans une case si elle contient deja l'un des chiffre d'une pair
ainsi on ne rentre les chiffres que dans les cases qui ne contiennent aucun chiffre d'une pair (n'oublie pas d'initialiser toutes les cases du tableau a 9 au depart avec deux boucle for)
i=rand()%4;j=rand()%4;
la tu choisis les case au hasard grace a la fonction rand
et voila...
si tu veux voir ce que ça donne il suffit de tester ;)
for(k=1;k<=8;k++)
k designe le chiffre a rentré dans le tableau de 1 à 8
while(tab[i][j]<=8)
ça c'est pour eviter de rentrer un chiffre dans une case si elle contient deja l'un des chiffre d'une pair
ainsi on ne rentre les chiffres que dans les cases qui ne contiennent aucun chiffre d'une pair (n'oublie pas d'initialiser toutes les cases du tableau a 9 au depart avec deux boucle for)
i=rand()%4;j=rand()%4;
la tu choisis les case au hasard grace a la fonction rand
et voila...
si tu veux voir ce que ça donne il suffit de tester ;)
#include <stdio.h> int main() { int i,j,k; int tab[4][4]; for(i=0;i<4;i++) for(j=0;j<4;j++) tab[i][j]=9; srand(time(NULL)); i=j=0; for(k=1;k<=8;k++) { while(tab[i][j]<=8) { i=rand()%4; j=rand()%4; } tab[i][j]=k; while(tab[i][j]<=8) { i=rand()%4; j=rand()%4; } tab[i][j]=k; } for(i=0;i<4;i++) { for(j=0;j<4;j++) { printf("%d ",tab[i][j]); } printf("\n"); } return 0; }
Ok je comprend mieux en fait je croyais que ce code mettait les deux chiffres composant les pairs dans la meme case!
En plus je ne comprenait la synatxe de ton while (toujours pas d'ailleurs): je connait la fonction do{code a effectué}while(conditions) mais je ne savait pas qu'on pouvait utilisé while comme ca!
J'irai dormir moi c*n demain soir lol!
Je te remerci grandement pour ton coup de main en tout cas ;)
En plus je ne comprenait la synatxe de ton while (toujours pas d'ailleurs): je connait la fonction do{code a effectué}while(conditions) mais je ne savait pas qu'on pouvait utilisé while comme ca!
J'irai dormir moi c*n demain soir lol!
Je te remerci grandement pour ton coup de main en tout cas ;)
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
14 janv. 2008 à 03:25
14 janv. 2008 à 03:25
de rien...
en effet la boucle while est plus efficace que la boucle do...while je l'utilise pour pas remplir la meme case ainsi elle permet de tester si la case tiré au hasard contient deja un des chiffre d'une pair ou non, si cette case contient deja un chiffre d'une pair on tire une nouvelle case au hasard sinon on met le chiffre d'une pair directement
ça syntaxe c'est :
bonne chance pour ton jeu ;)
en effet la boucle while est plus efficace que la boucle do...while je l'utilise pour pas remplir la meme case ainsi elle permet de tester si la case tiré au hasard contient deja un des chiffre d'une pair ou non, si cette case contient deja un chiffre d'une pair on tire une nouvelle case au hasard sinon on met le chiffre d'une pair directement
ça syntaxe c'est :
while(condition) {code}
bonne chance pour ton jeu ;)
C'est encore moi!
Je vient de relire ton code et quelque chose me turlupine^^
aux lignes 9 et 10 tu n'as pas mi de ";" comment est ce possible que la compilation ne plante pas??? Je ne comprend pas d'ailleurs pourquoi ces deux lignes sont là.. est-ce ce qu'on appel un prototype :$?
Je vient de relire ton code et quelque chose me turlupine^^
aux lignes 9 et 10 tu n'as pas mi de ";" comment est ce possible que la compilation ne plante pas??? Je ne comprend pas d'ailleurs pourquoi ces deux lignes sont là.. est-ce ce qu'on appel un prototype :$?
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
14 janv. 2008 à 03:40
14 janv. 2008 à 03:40
c'est simplement une double boucle for utilisé pour remplir toutes les cases du tableau...
comme c'est un tableau 2D il faut deux boucle pour l'initialiser (c'est a dire remplir toutes les cases avec 9) si je ne l'initialise pas toutes les cases seront rempli avec des chiffres au hasard et sa posera probleme pour la suite du code...
comme c'est un tableau 2D il faut deux boucle pour l'initialiser (c'est a dire remplir toutes les cases avec 9) si je ne l'initialise pas toutes les cases seront rempli avec des chiffres au hasard et sa posera probleme pour la suite du code...