Fonction
Moustiquet
Messages postés
254
Statut
Membre
-
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
/*Programme utilisant des sous programmes qui permettent de decouvrir et d'afficher tous les nombres parfaits entre 2 et 500.*/
21 F:\FONCTION\NombreParfait.c syntax error before '{' token
23 F:\FONCTION\NombreParfait.c syntax error before string constant
23 F:\FONCTION\NombreParfait.c conflicting types for 'printf'
21 F:\FONCTION\NombreParfait.c syntax error before '{' token 23 F:\FONCTION\NombreParfait.c a parameter list with an ellipsis can't match an empty parameter name list declaration
23 F:\FONCTION\NombreParfait.c a parameter list with an ellipsis can't match an empty parameter name list declaration
23 F:\FONCTION\NombreParfait.c [Warning] data definition has no type or storage class
27 F:\FONCTION\NombreParfait.c syntax error before string constant
27 F:\FONCTION\NombreParfait.c [Warning] data definition has no type or storage class
30 F:\FONCTION\NombreParfait.c [Warning] return type of 'main' is not `int'
Le comtilateur me renvoi ces messages, mais je comprends pas tout devrais baigner dans l'huile.
#include <stdio.h>
int estParfait(int n)
{
int somDivPropre= 1,/* le premier diviseur de 1*/
k; /*est-il un diviseur de n*/
/* totaliser les diviseur propre*/
for (k=2;k<=n/2; k++)
if (n%k== 0)
somDivPropre+= k;
return n== somDivPropre;
}
/*Afficher tel que demandé*/
void afficher (int nombreParfait);
{
int k;
(23) printf ("%4d =1", nombreParfait); for( k=2;k<= nombreParfait/2;k++)
if (nombreParfait % k==0)
printf ("+ %3d", k);
(27) printf("\n");}
void main()
{
const int BORNE1=2,
BORNE2=500;
int nombre, compteur=0;
printf("Voici les nombres parfaits entre %d et %d\n\n",BORNE1,BORNE2);
for (nombre = BORNE1;nombre<=BORNE2; nombre++)
if(estParfait(nombre)){
printf("%3d",++compteur);
afficher(nombre);
}
printf("Cliquer sur le bouton de fermeture");
21 F:\FONCTION\NombreParfait.c syntax error before '{' token
23 F:\FONCTION\NombreParfait.c syntax error before string constant
23 F:\FONCTION\NombreParfait.c conflicting types for 'printf'
21 F:\FONCTION\NombreParfait.c syntax error before '{' token 23 F:\FONCTION\NombreParfait.c a parameter list with an ellipsis can't match an empty parameter name list declaration
23 F:\FONCTION\NombreParfait.c a parameter list with an ellipsis can't match an empty parameter name list declaration
23 F:\FONCTION\NombreParfait.c [Warning] data definition has no type or storage class
27 F:\FONCTION\NombreParfait.c syntax error before string constant
27 F:\FONCTION\NombreParfait.c [Warning] data definition has no type or storage class
30 F:\FONCTION\NombreParfait.c [Warning] return type of 'main' is not `int'
Le comtilateur me renvoi ces messages, mais je comprends pas tout devrais baigner dans l'huile.
Configuration: SustemeMicosoft Windows version 5.1.2600 Srevive 2 Processeurx86 Family 15 modele4 BiosPhoenix Tech memoire physique totale 512
3 réponses
-
1) pour coder le corps d'une fonction :
void afficher (int nombreParfait) {
et pasvoid afficher (int nombreParfait); { -
21 F:\FONCTION\NombreParfait.c syntax error before '{' token
Ah, il faudra prendre l'habitude de rester humble devant les remarques du compilateur; on est tous passé par là, à se dire :"mais le compilateur à tort !". Maintenant je ne le remets plus jamais en cause et m'applique à comprendre 'à la lettre' ce qu'il veut dire et, ici, sa remarque est claire: à la ligne 21, dans le fichier NombreParfait.c il y a une erreur avant {.
Ce qui est important, c'est la première erreur signalée; ensuite les autres découlent souvent, mais pas toujours, d'une erreur précédente.
Rassure-toi ce n'est pas toujours facile de comprendre ce qu'il veut dire.
Bonne journée. -
Bonne remarque, C'est deja toute une aventure l'apprentissage de la programmation, mais la compréhension du compilateur me rend souvent perplexe. Merci encore de votre aide.
-
ça peut en effet des fois être très étrange, ce qu'il nous sort le compilo;)
Mais en général, la première erreur pointe bien là où il y a vraiment une faute (ou alors une ligne en dessus ou en dessous), et la description est très souvent correcte pour celle-ci.
Tu corriges la première, tu tentes de recompiler, tu corriges la nouvelle première, etc... : c'est une bonne méthode à avoir si tu te sens pris dans la confusion de tous ces messages :)
-