1- il faut s'assurer que nombre2 soit différent de 0
2- il faut faire attention qu'il s'agit de la division entre entiers et que le résultat sera le quotient de la division entière (division euclidienne)
1- il faut s'assurer que nombre2 soit différent de 0
2- il faut faire attention qu'il s'agit de la division entre entiers et que le résultat sera le quotient de la division entière (division euclidienne)
merci de ta reponse. j'ai appris de nouvelles chose les tableaux et les pointeur j'ai eu un peu de mal a compprendre mais je pense avoir comprit apres quelque relecturej'ai essaye de mettre tout cela en application mais le resultat est catastrophique pourquoi je sais pas peut etre que je n'ai pas si bien comprid le cours
main.c
commade.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #include <stdio.h> #include <stdlib.h> #include "commande.c" int main() { int tableaux[4],i,total; for(i = 0,i<4,i++) { printf("insere le nombre %d:",i); scanf("%d",tableaux[i]); } sommetableaux(tableaux,4,total); printf("la somme de tout ces nombre vaut %d",total); return 0; }
commade.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int sommetableaux(int tableau[],int taille,int *pointeur);
message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include <stdio.h> #include <stdlib.h> #include "commade.h" int sommetableaux(int tableau[],int taille,int *pointeur) { int i; for(i =0;i<taille;i ++) *pointeur += tableau[i]; }
peut etre que les fautes vous parraisse evidante mais pas pour moi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 projet\commande.c||In function `sommetableaux':| \projet\commande.c|10|warning: control reaches end of non-void function| \projet\main.c||In function `main':| \projet\main.c|7|warning: left-hand operand of comma expression has no effect| \projet\main.c|7|error: syntax error before ')' token| \projet\main.c|10|warning: format argument is not a pointer (arg 2)| \projet\main.c|6|warning: unused variable `total'| \projet\main.c|12|error: syntax error before numeric constant| \projet\main.c|12|warning: type defaults to `int' in declaration of `sommetableaux'| \projet\main.c|12|warning: data definition has no type or storage class| \projet\main.c|13|error: syntax error before string constant| lien\Nouveau dossier\projet\main.c|13|warning: type defaults to `int' in declaration of `printf'| \projet\main.c|13|error: conflicting types for 'printf'| \projet\main.c|13|note: a parameter list with an ellipsis can't match an empty parameter name list declaration| \projet\main.c|13|error: conflicting types for 'printf'| \projet\main.c|13|note: a parameter list with an ellipsis can't match an empty parameter name list declaration| \projet\main.c|13|warning: data definition has no type or storage class| ||=== Build finished: 5 errors, 8 warnings ===|sinon j'avais une dernier question a quoi correspond les deux bibliothèque que j'ai rajoute je les rajoute et je ne sais même pas a quoi cela correspond -.-".
merci d'avance
Tu ne fais vraiment pas assez attention:
-La fonction sommetableaux() doit retourner un int et il n'y a pas de return ...projet\commande.c||In function `sommetableaux'
\projet\commande.c|10|warning: control reaches end of non-void function|
-for(i = 0,i<4,i++) ce ne sont pas des , mais des ; qui servent de séparateur.\projet\main.c|7|warning: left-hand operand of comma expression has no effect|
\projet\main.c|7|error: syntax error before ')' token|
-scanf("%d",tableaux[i]); l'argument doit être une adresse, pas un int : scanf("%d",tableaux+i) ou scanf("%d",&tableaux[i])\projet\main.c|10|warning: format argument is not a pointer (arg 2)|
- sommetableaux(tableaux,4,total); la fonction attend un int * or total est un int : sommetableaux(tableaux,4,&total);
- etc...
merci de ta reponse .je sais que ce site ne doit pas tout faire a ma place mais si tu m'aurais pas aidez j'aurais pas reussie merci mais il reste une erreur ou plutôt deux mais sur la meme ligne.Merci d'avance; Je tien a te remercie car si tu ne serais pas la pour répondre a mes multiple questions e problèmes je ne pense pas que je pourrais apprendre tant de chose alors merci a toi et ok.idriss.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <stdio.h> #include <stdlib.h> #include "commade.h" int sommetableaux(int tableau[],int taille,int *pointeur) { int i; for(i =0;i<taille;i ++) *pointeur += tableau[i]; return *pointeur; }
obj\Debug\commande.o||In function `sommetableaux'
\projet\commande.c|6|multiple definition of `_sommetableaux'|
\projet\commande.c|6|first defined here|
||=== Build finished: 2 errors, 0 warnings ===|
comme l'indique le message d'erreur, tu as défini plusieurs fois cette fonction.
Je vois que tu passe un pointeur a ta fonction pour stocker le résultat donc autant ne pas faire une fonction qui retourne ce pointeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include <stdio.h> void sommetableaux( int*, unsigned int, int* ); void sommetableaux( int tableau[], unsigned int taille, int* pointeur ) { unsigned int i; for ( i = 0; i < taille; ++i ) *pointeur += tableau[i]; } int main ( void ) { int tab[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int resultat = 0; sommetableaux( tab, 10, &resultat ); printf( "Resultat = %d\n", resultat ); return 0; }
si j'ai bien compris le cours quand on met void devant une fonction quand elle ne renvoie aucune valeur c'est bien cela sinon j'ai pas compris ce que tu m'as dit aura et jeroman je ne vois pas commant j'ai defini deux la fonction j'ai fait un prototype et une fonction ?Je pense que je fais relire TOUT le cours sur le c
merci d'avance
Et bien regarde bien mon code. Tu passe a ta fonction une variable int* qui va contenir ton résultat de l'addition de toutes tes cases de ton tableau. Sachant que tu passe un pointeur, donc l'adresse en mémoire où se trouve ta variable, autant ne pas la renvoyer.
Si tu regarde bien mon code, tu verra que dans le main, je déclare une variable resultat et je passe l'adresse de cette variable à la fonction (&resultat).
Si tu exécute mon code tu verras qu'il y aura bien le bon résultat dans la variable resultat.
d'accord j'ai recopier ton code tout marche bien mais je vaudrais que l'utilisateur puissent entre le nombre donc j'ai fait
quand j'ai rajoute for sa ma mit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #include <stdio.h> void sommetableaux( int*, unsigned int, int* ); void sommetableaux( int tableau[], unsigned int taille, int* pointeur ) { unsigned int i; for ( i = 0; i < taille; ++i ) *pointeur += tableau[i]; } int main ( void ) { int tab[10]; int resultat = 0; int i; for(i=0,i<10,i++) { printf("insere le nombre %d :",i); scanf("%d",&tab[i]); } sommetableaux( tab, 10, &resultat ); printf( "Resultat = %d\n", resultat ); return 0; }
merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 ||In function `main':| |19|warning: left-hand operand of comma expression has no effect| |19|error: syntax error before ')' token| l17|warning: unused variable `resultat'| l25|error: syntax error before numeric constant| l25|warning: type defaults to `int' in declaration of `sommetableaux'| |25|error: conflicting types for 'sommetableaux'| |7|error: previous definition of 'sommetableaux' was here| |25|warning: data definition has no type or storage class| |27|error: syntax error before string constant| |27|warning: type defaults to `int' in declaration of `printf'| |27|error: conflicting types for 'printf'| |27|note: a parameter list with an ellipsis can't match an empty parameter name list declaration| |27|error: conflicting types for 'printf'| |27|note: a parameter list with an ellipsis can't match an empty parameter name list declaration| |27|warning: data definition has no type or storage class| ||=== Build finished: 7 errors, 6 warnings ===|
Encore une fois tu as oublié de faire attention a ce que tu écris :
C'est des ; et pas des , donc cela donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for(i=0,i<10,i++)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for( i = 0 ; i < 10 ; ++i )
merci de ta reponse je pense que je vais travaille la programmation modulaire les pointeur et les tableaux chacun d'un cote car si j'essaye de mettre tout les chose que je vienne d'apprendre et que sa beuge de tout partoutmerci a toi pour avoir prit le temps de me répondre
Partager