Matrice aleatroire
Fermé
naruto2333
Messages postés
51
Date d'inscription
vendredi 21 mars 2014
Statut
Membre
Dernière intervention
20 janvier 2017
-
Modifié par Chris 94 le 21/04/2014 à 01:56
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 23 avril 2014 à 17:14
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 23 avril 2014 à 17:14
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
21 avril 2014 à 15:36
21 avril 2014 à 15:36
Bonjour,
Pourquoi enlever le "Bonjour" mis automatiquement ? S'il est là, ce n'est pas pour rien...
main()
Le bon prototype est : int main(void)
Et il ne faut pas oublier le return 0; final.
printf("donner nv");
A quoi sert nv ? Tu ne t'en sers pas...
Dans ta fonction numero(),
Il faut que tu mettes t=1; en début de la boucle do while. Sinon boucle infini si t change de valeur.
De plus, tu parles de tableau de taille 3*4, mais dans ton code c'est un tableau de taille 8 par 9. Donc si tu mets r = rand()%10; il ne pourra pas remplir le tableau puisque tu pourras remplir au maximum 30 cases du tableau. Il faut que tu mettes plutôt r=rand()%25; pour remplir les 72 cases.
Et enfin, l'indentation à revoir. Ce n'est pas régulier. Du coup, ça nuit à la lisibilité.
Cdlt,
Pourquoi enlever le "Bonjour" mis automatiquement ? S'il est là, ce n'est pas pour rien...
main()
Le bon prototype est : int main(void)
Et il ne faut pas oublier le return 0; final.
printf("donner nv");
A quoi sert nv ? Tu ne t'en sers pas...
Dans ta fonction numero(),
Il faut que tu mettes t=1; en début de la boucle do while. Sinon boucle infini si t change de valeur.
De plus, tu parles de tableau de taille 3*4, mais dans ton code c'est un tableau de taille 8 par 9. Donc si tu mets r = rand()%10; il ne pourra pas remplir le tableau puisque tu pourras remplir au maximum 30 cases du tableau. Il faut que tu mettes plutôt r=rand()%25; pour remplir les 72 cases.
Et enfin, l'indentation à revoir. Ce n'est pas régulier. Du coup, ça nuit à la lisibilité.
Cdlt,
naruto2333
Messages postés
51
Date d'inscription
vendredi 21 mars 2014
Statut
Membre
Dernière intervention
20 janvier 2017
2
23 avril 2014 à 04:05
23 avril 2014 à 04:05
en fait c une partie de mon taf donc g fait des erreurs quand j ai copie le code . voila le code correcte
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void alea(int m[3][4],int *l,int *c)
{
do{
*l=rand()%3 ;
*c=rand()%4;
}while (m[*l][*c]!=10) ;
}
int numero(int m[3][4])
{ int r,i,j,t=1;
do{
r = rand()%10;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
{
if (m[i][j]==r) t=0;
}
}
}while (t==0);
return(r);
}
void repetition(int m[3][4])
{ int a,cmp1=0,l,c;
a=numero(m);
do {
alea(m,&l,&c);
m[l][c]=a;
cmp1++;
}while(cmp1!=3);
}
void remp(int m[3][4])
{ int i;
for(i=0;i<4;i++)
repetition(m);
}
main()
{ srand(time(NULL));
int m[3][4],i,j;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++) m[i][j]=10;
}
remp(m);
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
{
printf("%d\t",m[i][j]);
}
printf("\n");
}
system("PAUSE");
}
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void alea(int m[3][4],int *l,int *c)
{
do{
*l=rand()%3 ;
*c=rand()%4;
}while (m[*l][*c]!=10) ;
}
int numero(int m[3][4])
{ int r,i,j,t=1;
do{
r = rand()%10;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
{
if (m[i][j]==r) t=0;
}
}
}while (t==0);
return(r);
}
void repetition(int m[3][4])
{ int a,cmp1=0,l,c;
a=numero(m);
do {
alea(m,&l,&c);
m[l][c]=a;
cmp1++;
}while(cmp1!=3);
}
void remp(int m[3][4])
{ int i;
for(i=0;i<4;i++)
repetition(m);
}
main()
{ srand(time(NULL));
int m[3][4],i,j;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++) m[i][j]=10;
}
remp(m);
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
{
printf("%d\t",m[i][j]);
}
printf("\n");
}
system("PAUSE");
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
23 avril 2014 à 07:32
23 avril 2014 à 07:32
Plusieurs de mes remarques restent valables.
Donc tiens en compte et si ça ne fonctionne toujours pas reposte ton code corrigé entre 2 balises "code" (bouton situé à droite de "souligné")
Donc tiens en compte et si ça ne fonctionne toujours pas reposte ton code corrigé entre 2 balises "code" (bouton situé à droite de "souligné")
naruto2333
Messages postés
51
Date d'inscription
vendredi 21 mars 2014
Statut
Membre
Dernière intervention
20 janvier 2017
2
23 avril 2014 à 17:05
23 avril 2014 à 17:05
le code est correcte et il s execute correctement mais par fois il repend pas moi je pense a changer le compilateur pouvez vous me conseillez moi je taf sur dev c++
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
23 avril 2014 à 17:14
23 avril 2014 à 17:14
le code est correcte
Ben cela dépend si tu as tenu compte de mes remarques et si tu les as bien intégrées. De plus, je n'ai pas relu ton code en détail puisque j'attends que tu le montres entre 2 balises "code" en tenant compte des corrections.
Pour le compilateur, je te conseille "Code::Block". Mais, si ça ne fonctionne pas, ce n'est sûrement pas le compilateur...
Ben cela dépend si tu as tenu compte de mes remarques et si tu les as bien intégrées. De plus, je n'ai pas relu ton code en détail puisque j'attends que tu le montres entre 2 balises "code" en tenant compte des corrections.
Pour le compilateur, je te conseille "Code::Block". Mais, si ça ne fonctionne pas, ce n'est sûrement pas le compilateur...