Ben je ne vois pas d'appel à tp2 dans la fonction tp1 !!!Citation:
Envoyé par lucky31
Version imprimable
Ben je ne vois pas d'appel à tp2 dans la fonction tp1 !!!Citation:
Envoyé par lucky31
oui c vrai nous en nous a demander d'abord d'effectuer le tp 1 (2 listes) puis tp2( matrice) mais moi j'ai d'abord rempli la matrice puis j'ai fait appel a la matrice pour quel m'aide a me donner le succ de chaque sommets c caCitation:
Envoyé par crocodilex
Donc tu commences par tp2 alors ?Citation:
Envoyé par lucky31
Bon, étant donné que tu ne veux pas remplacer les scanf par des fgets, on va essayer de garder tes scanf, a ceci près :
Ca evitera quelques soucis, mais ce n'est pas gagné.Code:
1
2
3
4
5
6
7
8
9 void tp2 () { int c; ...... printf ("donner le nombre de sommets : "); scanf ("%d",&nb); while ( ((c = getchar()) != '\n') && c != EOF); .....
Fais ça partout où tu as scanf, tout en restant cohérent bien entendu.
je vous pose 1 question: je veux remplir 1 tableau avec de sommets j'ai ecris ca mais je crois que c fauxCitation:
Envoyé par crocodilex
//initialisation du tableau sommet
printf("entrer les sommets:\n");
scanf("%c",&s);
for (i=1;i<=nb;i++)
{
sommet[i]= s ;
printf(" ");
}
vous pouvez m'expliquer ca sert a quoi c=.....Citation:
Envoyé par crocodilex
Lorsque tu déclares un tableau de 5 élements comme ceci :Citation:
Envoyé par lucky31
tab[0] est le premier élémentCode:int tab[5];
et
tab[4] est le cinquième élements :)
Or, toi tu commences ta boucle à 1 et tu termines à une valeur en dehors du tableau, d'où plantage.
Il faut que tu fasses :
Code:
1
2
3
4
5 for (i=0;i<nb;i++) { sommet[i]= s ; ...... }
mais lors de l'execution le tableau ne s'affiche pasCitation:
Envoyé par crocodilex
Citation:
Envoyé par lucky31
Cette ligne permet de flusher le tampon d'entrée (stdin).Code:while ( ((c = getchar()) != '\n') && c != EOF);
Sur ton clavier lorsque tu rentres un entier, tu valides par la touche entrée.
Donc dans le tampon, tu as un entier + le code correspondant à la touche entrée (le fameux "\n"). Dans ton cas, scanf attends seulement un entier.
Que fait-on du "\n" ? Et bien on le flush. De plus rien ne t'empeches de rentrer un entier + n'importe quoi + entrée. C'est pour ces raisons qu'on emploi la manière radicale ; tirer la chasse d'eau...
Je n'ai pas saisi là !!!!Citation:
Envoyé par lucky31
//initialisation du tableau sommetCitation:
Envoyé par crocodilex
printf("entrer les sommets pour terminer afficher '*': ");
printf("");
scanf("%c",&s);
for (i=0;i<nb;i++)
{
sommet[i]= s ;
printf(" ");
}
//initialisation de la matrice M
for (i=1;i<=nb;i++)
{ printf("\n");
for (j=1;j<=nb;j++)
{
M[i][j]=0;
printf ("\t%d\t",M[i][j]);
printf ("\n");
}
}il m'affiche n'importe quoi lors de l'execution!!!
Tu n'as pas lus mes précédents messages !!!!!:sm:Citation:
Envoyé par lucky31
J'ai dis quoi pour le scanf ?
Et pour les tableaux ?
Alors cette fonction tp2() ? Elle avance ?
je suis bloqué dans l'affichage des listesCitation:
Envoyé par crocodilex
Montres un peu ta fonction tp2() .Citation:
Envoyé par lucky31
mais j'utilise tjrs les scanf je ne cpas utilisé d'autre choses alors si tu veux tjrs que je te montre ?????Citation:
Envoyé par crocodilex
Ben oui, montres...Citation:
Envoyé par lucky31
mais j'ai pas encore fini avec la fonction indexCitation:
Envoyé par crocodilex
mais il s'execute jusqu'a entrer l'extremite final!!Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 void tp2 () {//tp1(); int i,j,c; char som1,som2; int nb=0; int nbr=0; char sommet[30]; int M[30][30]; printf ("donner le nombre de sommets : "); scanf ("%d",&nb); printf ("donner le nombre d'arcs : "); scanf ("%d",&nbr); printf("\n"); //initialisation du tableau sommet for (i=0;i<nb;i++) { printf("\nDonner le nom du sommet nø%d :",i); scanf("%s",&sommet[i]); } //initialisation de la matrice M for (i=1;i<=nb;i++) { for (j=1;j<=nb;j++) { getchar(); printf("(%d,%d)= ",i,j); scanf("%d",&M[i][j]); printf("\n"); } } printf( "la lecture de la matrice sommet-sommet"); for(i=1;i<=nb;i++) { printf("\n"); for (j=1;j<=nb;j++) printf ("\t%d\t",M[i][j]); printf ("\n"); } //parcours en profondeur du graphe for (i=1;i<=nbr;i++) { int x,y; printf ("donner l'extremite initiale de l'arc \n: "); scanf ("%s",&som1); printf ("donner l'extremite terminale de l'arc \n: "); scanf ("%s",&som2); //x donne l'indice de som1 dans le tableau sommet x=Index(som1); // meme chose pour y y=Index(som2); M[x][y]=1; } //affichage de la matrice for (i=1;i<=nb;i++) { for (j=1;j<=nb;j++) printf ("%7d",M[i][j]); printf ("\n"); } tp1 (); }
Bon allé, en vrac quelques corrections non exhaustives (compares avec ce que tu as déjà), parceque je commence à fatiguer un peu :( :
La fonction main :
La fonction choisir :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 int main () { int choix; do { choix = choisir (); if (choix==1) tp1 (); if (choix==2) tp2 (); if (choix==3) tp3 (); //if (choix==4) tp4 (); } while (choix!=5); return 0; }
La fonction tp2:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 int choisir () { int choix, c; printf ("tapez 1 pour effectuer le tp1 \n"); printf ("tapez 2 pour effectuer le tp2 \n"); printf ("tapez 3 pour effectuer le tp3 \n"); printf ("tapez 4 pour effectuer le tp4 \n"); printf ("tapez 5 pour sortir \n"); printf (" Donner votre choix: "); scanf ("%d",&choix); while ( ((c = getchar()) != '\n') && c != EOF); return (choix); }
Je vais me coucher.....:sleep:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 void tp2 () {//tp1(); int i,j,c; char som1,som2; int nb=0; int nbr=0; char sommet[30][30]; /* Tableau de 30 chaines de caractères */ int M[30][30]; printf ("donner le nombre de sommets : "); scanf ("%d",&nb); while ( ((c = getchar()) != '\n') && c != EOF); printf ("donner le nombre d'arcs : "); scanf ("%d",&nbr); while ( ((c = getchar()) != '\n') && c != EOF); //printf("\n"); //initialisation du tableau sommet for (i=0;i<nb;i++) { printf("\nDonner le nom du sommet nø%d :",i); scanf("%s",&sommet[i][0]); while ( ((c = getchar()) != '\n') && c != EOF); } //initialisation de la matrice M for (i=0;i<nb;i++) { for (j=0;j<nb;j++) { //getchar(); printf("(%d,%d)= ",i,j); scanf("%d",&M[i][j]); while ( ((c = getchar()) != '\n') && c != EOF); //printf("\n"); } } printf( "la lecture de la matrice sommet-sommet\n"); for(i=0;i<nb;i++) { //printf("\n"); for (j=0;j<nb;j++) printf ("\t%d\t",M[i][j]); printf ("\n"); } //parcours en profondeur du graphe for (i=0;i<nbr;i++) { int x,y; printf ("donner l'extremite initiale de l'arc \n: "); scanf ("%c",&som1); while ( ((c = getchar()) != '\n') && c != EOF); printf ("donner l'extremite terminale de l'arc \n: "); scanf ("%c",&som2); while ( ((c = getchar()) != '\n') && c != EOF); //x donne l'indice de som1 dans le tableau sommet x=Index(som1); // meme chose pour y y=Index(som2); M[x][y]=1; } //affichage de la matrice for (i=0;i<nb;i++) { for (j=0;j<nb;j++) printf ("%7d",M[i][j]); printf ("\n"); } tp1 (); }
Si quelqu'un veut bien prendre la relève...:mur:
le dernier code poser bloque lors de l'execution au niveau de la fonction Index( elle est fait pour remplir la liste l1 car elle contient l'@ des successeurs et j'ai utilisé la matrice pour cela)
merci de vouloir bien m'aider
Ce code est incomplet. On ne peut pas le compiiler. Tu dois toujours vérifier que ce que tu postes est compilable ou alors tu demandes pourquoi il ne l'est pas...Citation:
Envoyé par lucky31
voila tt le codeCitation:
Envoyé par Emmanuel Delahaye
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303 #include <stdio.h> #include<stdlib.h> #define N 30 void tp1 (); void tp2 (); void tp3 (); void tp4 (); int choisir (); int Index (char s); char sommet [30]; char l2[30]; int l1[30]; int M[30][30]; int r,nb,nbr; char s; int main () { int choix; do { choix = choisir (); if (choix==1) tp1 (); if (choix==2) tp2 (); if (choix==3) tp3 (); //if (choix==4) tp4 (); } while (choix!=5); return 0; } int choisir () { int choix, c; printf ("tapez 1 pour effectuer le tp1 \n"); printf ("tapez 2 pour effectuer le tp2 \n"); printf ("tapez 3 pour effectuer le tp3 \n"); printf ("tapez 4 pour effectuer le tp4 \n"); printf ("tapez 5 pour sortir \n"); printf (" Donner votre choix: "); scanf ("%d",&choix); while ( ((c = getchar()) != '\n') && c != EOF); return (choix); } //****************************************************************************** int Index (char s) { int r=0; int p; p=1; while ((sommet[p]!=s) && (sommet[p]!='*')) { p=p+1; } if (sommet[p]==s) { return(p); } else { r=r+1; sommet[r]=s; return (r); } } //****************************************************************************** void tp2 () {//tp1(); int i,j,c; char som1,som2; int nb=0; int nbr=0; char sommet[30][30]; /* Tableau de 30 chaines de caractères */ int M[30][30]; printf ("donner le nombre de sommets : "); scanf ("%d",&nb); while ( ((c = getchar()) != '\n') && c != EOF); printf ("donner le nombre d'arcs : "); scanf ("%d",&nbr); while ( ((c = getchar()) != '\n') && c != EOF); //printf("\n"); //initialisation du tableau sommet for (i=0;i<nb;i++) { printf("\nDonner le nom du sommet n?%d :",i); scanf("%s",&sommet[i][0]); while ( ((c = getchar()) != '\n') && c != EOF); } //initialisation de la matrice M for (i=0;i<nb;i++) { for (j=0;j<nb;j++) { //getchar(); printf("(%d,%d)= ",i,j); scanf("%d",&M[i][j]); while ( ((c = getchar()) != '\n') && c != EOF); //printf("\n"); } } printf( "la lecture de la matrice sommet-sommet\n"); for(i=0;i<nb;i++) { //printf("\n"); for (j=0;j<nb;j++) printf ("\t%d\t",M[i][j]); printf ("\n"); } //parcours en profondeur du graphe for (i=0;i<nbr;i++) { int x,y; printf ("donner l'extremite initiale de l'arc \n: "); scanf ("%c",&som1); while ( ((c = getchar()) != '\n') && c != EOF); printf ("donner l'extremite terminale de l'arc \n: "); scanf ("%c",&som2); while ( ((c = getchar()) != '\n') && c != EOF); //x donne l'indice de som1 dans le tableau sommet x=Index(som1); // meme chose pour y y=Index(som2); M[x][y]=1; } //affichage de la matrice for (i=0;i<nb;i++) { for (j=0;j<nb;j++) printf ("%7d",M[i][j]); printf ("\n"); } tp1 (); } //****************************************************************************** void (tp1 ()) { //tp2(); int i,j,k,d,M[30][30],l1[30]; char sommet[30],l2[30]; k=0; int nb=0;nbr=0; //la lecture de la matrice sommet-sommet for(i=1;i<=nb;i++) { for(j=1;j<=nb;j++) { scanf( "%d",M[i][j]); } } //la lecture du tableau des sommets for (i=1;i<=nb;i++) { scanf ("%c" , sommet[i]); } //initialisation de la liste l2 for (i=1;i<=N ; i++) { l2[i]=' '; } //creation de la liste l2 for (i=1;i<=nb;i++) { for (j=1;j<=nb;j++) { if( M[i][j]==1) { printf (" le successeur du sommet : "); printf ("%c",sommet[i]); printf (" est : "); printf ("%c\n",sommet[j]); k=k+1; l2[k]=sommet[j]; } } } d=i; for (j=1;j<=nb;i++) { if (M[d][j]!=1) { k=k+1; l2[k]='*'; } } //affichage de la liste l2 for(i=1;i<=N;i++) { while (l2[i]!=' ' ) { printf("%c",l2[i]); printf (" "); } } //initialisation de la liste l1 for(i=1;i<N;i++) { l1[i]=0; } //creation de la liste l1 i=1; j=1; k=0; a:if(M[i][j]==1) { k=k+1; l1[k]=k; j=j+1; while(j<=nb) { b:if(M[i][j]==1) { k=k+1; j=j+1; goto b; } else { j=j+1; goto b; } } i=i+1; j=1; goto a; } else { j=j+1; goto a; } int p; p=k; for (i=1;i<=N;i++) { if(l2[i]=='*') { l1[p]=p; } } //affichage de la liste l1 for(i=1;i<=N;i++) { while (l1[i]!=0) { printf("%d",l1[i]); printf (" "); } } } //****************************************************************************** void tp3 () { int i,j;nb=0; for(i=1;i<=nb;i++) { printf("\n"); for (j=1;j<=nb;j++) { printf ("\t%d\t",M[i][j]); printf ("\n"); { if ((M[i][j]==1)&&(i!=j)) { if ((M[j][i]==1)&&(i!=j)) { printf (" le graphe est symétrique "); printf ("\n"); } else printf (" le graphe est antisymetrique "); } if ((M[i][j]==0) && (M[j][i]==0)) { printf (" le graphe n'est complet "); printf ("\n"); } else printf("le graphe est complet"); } } }} //return ; //}
le code est ecrit en c et compiler avec le dev c++
int Index (char s)
{
char sommet [30];
int r=0;
int p;
p=1;
while ((sommet[p]!=s) && (sommet[p]!='*'))
{
p=p+1;
}
if (sommet[p]==s)
{
return(p);
}
else
{
r=r+1;
sommet[r]=s;
return (r);
}
}
[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status
je ne comprend pas ces erreurs !!!
Si tu veux compiler et linker ce code (pour en faire un executable), il te faut une fonction main().Citation:
Envoyé par lucky31
c vrai merci pour la remarqueCitation:
Envoyé par crocodilex
expected init-declarator before "int"Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 int Index (char s) int main() { char sommet [30]; int r=0; int p; p=1; while ((sommet[p]!=s) && (sommet[p]!='*')) { p=p+1; } if (sommet[p]==s) { return(p); } else { r=r+1; sommet[r]=s; return (r); } return 0; }
expected `,' or `;' before "int"
est c'est erreurs
C'est n'importe quoi ça !!!!Citation:
Envoyé par lucky31
Ca doit ressembler à ça :
Code:
1
2
3
4
5
6
7
8
9 int main (void) { ..... } int Index (char s) { ...... }
oui c'est ca mais le prog principale bloque tjrs lors de l'appel de la fonction indexCitation:
Envoyé par crocodilex
Montres ton code.
Citation:
Envoyé par crocodilex
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324 #include <stdio.h> #include<stdlib.h> #include<conio.h> #define N 30 void tp1 (); void tp2 (); void tp3 (); void tp4 (); int choisir (); int Index (char s); char sommet [30]; char l2[30]; int l1[30]; int M[30][30]; int r,nb,nbr; char s; int main (void) { int choix; do { choix = choisir (); if (choix==1) tp1 (); if (choix==2) tp2 (); if (choix==3) tp3 (); //if (choix==4) tp4 (); } while (choix!=5); return 0; } int choisir () { int choix, c; printf ("tapez 1 pour effectuer le tp1 \n"); printf ("tapez 2 pour effectuer le tp2 \n"); printf ("tapez 3 pour effectuer le tp3 \n"); printf ("tapez 4 pour effectuer le tp4 \n"); printf ("tapez 5 pour sortir \n"); printf (" Donner votre choix: "); scanf ("%d",&choix); while ( ((c = getchar()) != '\n') && c != EOF); return (choix); } //****************************************************************************** int Index (char s) { int r=0; int p; p=1; char sommet [30]; while ((sommet[p]!=s) && (sommet[p]!='*')) { p=p+1; } if (sommet[p]==s) { return(p); } else { r=r+1; sommet[r]=s; return (r); } return 0; } //****************************************************************************** void tp2 () {//tp1(); int i,j; char som1,som2,c; int nb=0; int nbr=0; char sommet[30][30]; /* Tableau de 30 chaines de caractères */ int M[30][30]; printf ("donner le nombre de sommets : "); scanf ("%d",&nb); while ( ((c = getchar()) != '\n') && c != EOF); printf ("donner le nombre d'arcs : "); scanf ("%d",&nbr); while ( ((c = getchar()) != '\n') && c != EOF); //printf("\n"); //initialisation du tableau sommet for (i=0;i<nb;i++) { printf("\nDonner le nom du sommet n?%d :",i); scanf("%s",&sommet[i][0]); while ( ((c = getchar()) != '\n') && c != EOF); } //initialisation de la matrice M for (i=0;i<nb;i++) { for (j=0;j<nb;j++) { //getchar(); printf("(%d,%d)= ",i,j); scanf("%d",&M[i][j]); while ( ((c = getchar()) != '\n') && c != EOF); //printf("\n"); } } printf( "la lecture de la matrice sommet-sommet\n"); for(i=0;i<nb;i++) { //printf("\n"); for (j=0;j<nb;j++) printf ("\t%d\t",M[i][j]); printf ("\n"); } //parcours en profondeur du graphe for (i=0;i<nbr;i++) { int x,y; printf ("donner l'extremite initiale de l'arc \n: "); scanf ("%c",&som1); while ( ((c = getchar()) != '\n') && c != EOF); printf ("donner l'extremite terminale de l'arc \n: "); scanf ("%c",&som2); while ( ((c = getchar()) != '\n') && c != EOF); //x donne l'indice de som1 dans le tableau sommet x=Index(som1); // meme chose pour y y=Index(som2); M[x][y]=1; } //affichage de la matrice for (i=0;i<nb;i++) { for (j=0;j<nb;j++) printf ("%7d",M[i][j]); printf ("\n"); } tp1 (); } //****************************************************************************** void (tp1 ()) { //tp2(); int i,j,k,d,M[30][30],l1[30]; char sommet[30],l2[30]; k=0; int nb=0;nbr=0; //la lecture de la matrice sommet-sommet for(i=1;i<=nb;i++) { for(j=1;j<=nb;j++) { scanf( "%d",M[i][j]); } } //la lecture du tableau des sommets for (i=1;i<=nb;i++) { scanf ("%c" , sommet[i]); } //initialisation de la liste l2 for (i=1;i<=N ; i++) { l2[i]=' '; } //creation de la liste l2 for (i=1;i<=nb;i++) { for (j=1;j<=nb;j++) { if( M[i][j]==1) { printf (" le successeur du sommet : "); printf ("%c",sommet[i]); printf (" est : "); printf ("%c\n",sommet[j]); k=k+1; l2[k]=sommet[j]; } } } d=i; for (j=1;j<=nb;i++) { if (M[d][j]!=1) { k=k+1; l2[k]='*'; } } //affichage de la liste l2 for(i=1;i<=N;i++) { while (l2[i]!=' ' ) { printf("%c",l2[i]); printf (" "); } } //initialisation de la liste l1 for(i=1;i<N;i++) { l1[i]=0; } //creation de la liste l1 i=1; j=1; k=0; a:if(M[i][j]==1) { k=k+1; l1[k]=k; j=j+1; while(j<=nb) { b:if(M[i][j]==1) { k=k+1; j=j+1; goto b; } else { j=j+1; goto b; } } i=i+1; j=1; goto a; } else { j=j+1; goto a; } int p; p=k; for (i=1;i<=N;i++) { if(l2[i]=='*') { l1[p]=p; } } //affichage de la liste l1 for(i=1;i<=N;i++) { while (l1[i]!=0) { printf("%d",l1[i]); printf (" "); } } } //****************************************************************************** void tp3 () {/*la nature du graphe*/ int reg[20]={0}; int i,j; printf("\nla matrice d'incidence \n"); for(i=1;i<=nb;i++) { printf("\n"); for (j=1;j<=nb;j++) { printf ("\t%d\t",M[i][j]); printf ("\n"); } if ((M[i][j]==1)&&(i!=j)) { if ((M[j][i]==1)&&(i!=j)) { printf (" le graphe est symétrique "); printf ("\n"); } else printf (" le graphe est antisymetrique "); } if ((M[i][j]==0) && (M[j][i]==0)) { printf (" le graphe n'est complet "); printf ("\n"); } else printf("le graphe est complet"); { reg[i]=reg[i]+M[i][j]+M[j][i]; } for(i=1;i<nb;i++) { if( reg[i]!=reg[i+1]) { printf("le graphe n'est pas regulier "); printf("\n"); } else printf("le graphe est regulier "); } } } //return ; //}
Combien de fois va-t-il falloir te dire de :tagcode: ?Citation:
Envoyé par lucky31
/!\ Tu as oublié les &!!!Citation:
Envoyé par lucky31
Code:scanf ("%c" , &sommet[i]);
En effet soit:Citation:
Envoyé par miron
soit:Code:scanf ("%c" , &sommet[i]);
Code:scanf ("%c" , sommet+i);
Connait pas, Cela fonctionne pareil queCitation:
Envoyé par seriousme
?:idea:Code:scanf("%x",&ma_variable);
Avec les éléments de tableau, oui. L'important est de passer l'adresse de la variable...Citation:
Envoyé par miron
"sommet" est un pointeur, son contenu est une adresse, celle du début du tableau.
l'opérateur "[]" renvoie lui une variable classique, une valeur dont on récupère l'adresse avec l'opérateur "&" pour l'envoyer à "scanf".
OK MerciCitation:
Envoyé par Emmanuel Delahaye
PS Cela ne marche que avec les tableau ?(pour eviter de faire des bettises):aie:
Autre probleme tu initialise nb a 0 ce qui fait ques tes scanf ne servent a rien. pour que ce marche mettre 2 par exemple, j'ai eu qqc.(je ne sait pa s si c'est ce qu'il faut mais bon),Citation:
Envoyé par lucky31
puis unpar exemple apres affichages,cela permetrai de voir...:lahola:Code:Sleep(temp);
sleep temps??? ca marche pas lors de la compilation avec le dev c++Citation:
Envoyé par miron
Il faut écrire "Sleep" et inclure <windows.h>
ah ok merci :)Citation:
Envoyé par seriousme
je met ca apres les printf ou je la met ou??Citation:
Envoyé par seriousme