Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme de compilation

3 réponses
Avatar
Lazzouz
Bonjour,
Je suis en licence informatique 1ere année et débutant en c.
J'étais en train de refaire mon partiel d'intoduction à la programmation et de faire le programme demandé mais je n'arrive pas a compiler, je ne comprend pas les erreurs de compilation , et je m'oriente vers ce forum pour savoir si quelqu'un voudrais bien m'aider.
Le But générale du programme étant la gestion d'un magasin spécialiste de location de scooters, chaque scooter est caractériser par son numéro de [0,N[, sa disponibilité (1 si disponible, 0 sinon) et son kilométrage.
Avec pour Menu : 1- Louer un scooter, 2-Rendre un scooter, 3-Afficher l'Etat du parc, 4- Quitter, à la suite de l'affichagede l'état du parc j'affiche le nombre de scooter disponible et le nombre de kilométrage moyen.
Je repete que je suis débutant en langage C et que je ne suis pas très à l'aise avec les fonctions/Procédures,
Les en-tête des fonctions et procédures que j'ai programmées sont demander par question séparer et j'ai écris le "e;e;e;main"e;e;e; à la fin pour vérifier le programme:

(Pour tous les "e;For"e; suivant : i=0 ; i inérieur à N, i egale i plus 1; entre parentheses...)

#include <stdio.h>
#include <stdlib.h>
#define N 3
#define MAX 100000


int saisir_choix()
{
/*Fonction qui ne prend rien en entrée qui affiche le menu
* et demande à l'utilisateur de saisir son choix au clavier
* et retourne le numéro choisit */

int choix;

printf("nMenu :");
printf("1:Louer un scooter; 2:Rendre un scooter;");
printf("3:Afficher l'état du parc; 4:Quitter;n");
printf("Votre choix: ");
scanf("%d", &choix);

return choix;

}

int nb_dispos(int disponible[] )
{
/*Cette fonction prend en entrée le tableau disponible
* et qui retourne le nombre de scooter disponible */

int i, nb_scooter;
nb_scooter = 0 ;

for(i=0;i<N; i++)
{
if (disponible[i]==1)
nb_scooter = nb_scooter + 1 ;
}

return nb_scooter;

}

double kilometrage_moyen(int kilometrage[])
{
/*Cette fonction prend en entrée le tableau kilometrage
* et retourne le nombre de kilometre parcourus en moyenne
* par scooters*/

double kil_moy, somme;
int i;
somme = 0 ;

for (i=0 ; i<N ; i++)
{
somme = somme + kilometrage[i];

}

kil_moy = somme / N ;

return kil_moy;

}

void etat_du_parc(int disponible[], int kilometrage[] )
{
/*Cette procedure prend en entrée le tableau disponible,
* et le tableau kilometrage;
* elle affiche l'etat du parc ; scooter dispo et kilometrage
* puis fait appelle au fonction nb_dispos; kilometrage_moyen */

int i;
double kil_moy;
int dispo;


for (i=0; i<N ; i++)
{
printf("scooter n%d --", i);
printf(" Disponible ");
if (disponible[i]==1)
printf("; Oui --");
else printf(" Non --");

printf(" Kilometrage %d n", kilometrage[i]);
}

dispo = nb_dispos() ;
kil_moy = kilometrage_moyen();
printf("N_DISPO=%d ", dispo);
printf("K_MOYEN= %1.1f n", kil_moy);

}

void restitution(int disponible[], int kilometrage[] )
{
/*Cette procedure prend en entrée les tableaux disponible
* et kilometrage , demande le numero du scooter a rendre et
* la distance qu'il a parcourue */

int scooter, kilometrage ;

printf("Donner le numero du scooter à rendre : ");
scanf("%d", scooter);

printf("Donner la distance parcourue : ");
scanf("%d", kilometrage );

if (disponible[scooter] == 1)
{
printf("** Erreur , le scooter n'as pas etait emprunté n");

}

else

kilometrage[scooter] = kilometrage[scooter] - kilometrage ;
disponible[scooter] = 1;

}

void location(int disponible[], int kilometrage[] )
{
/*Cette procédure prend en entree le tableau disponible et le
* tableau kilometrage qui fait la recherche du scooter avec
* le kilometrage le plus faible et modifie tableaux disponible */
int i;

int kil;


kil = MAX;

for (i=0; i<N ; i++)
{

if((disponiblite[i] == 1)&&(kilometrage[i] < kil))
{

kil = i;
}
}

printf(";On vous donne le scooter %d : ", kil);
printf("n");

}

void initialisation(int disponibilite[], int kilometrage[])
{
/*Cette procédure prend en entree les deux tableaux, pour les
* initialisés, et retourne leur valeur (procédure facultatif au programme
* demandé*/

int i ;

for (i=0; i<N ;i++)
{
disponibilite[i] = 1 ;
}

for (i=0;i<N;i++)
{
kilometrage[i]=0;
}

}

void main ()
{
int kilometrage[N], disponible[N];
int choix;
intialisation(disponibilite[N], kilometrage[N]);

do
{
choix = saisir_choix();

if (choix == 1)
{
location(disponible[N], kilometrage[N]);
}
else if (choix == 2)
{
restitution(disponible[N], kilometrage[N]);
}
else if (choix == 3)
{
etat_du_parc(disponible[N], kilometrage[N]);
}

}
while (choix!=4);

if ((choix<1)||(choix>4))
{
printf("*** Erreur de la saisie ***");

}
}

Les Erreurs de compilations :

gcc -Wall -c "Ex2.c" (in directory: /home/*******/Documents/Partiel_prog)
Compilation failed.
Ex2.c: In function ‘etat_du_parc’:
Ex2.c:88:2: error: too few arguments to function ‘nb_dispos’
dispo = nb_dispos() ;
^
Ex2.c:25:5: note: declared here
int nb_dispos(int disponible[] )
^
Ex2.c:89:2: error: too few arguments to function ‘kilometrage_moyen’
kil_moy = kilometrage_moyen();
^
Ex2.c:43:8: note: declared here
double kilometrage_moyen(int kilometrage[])
^
Ex2.c: In function ‘restitution’:
Ex2.c:101:16: error: ‘kilometrage’ redeclared as different kind of symbol
int scooter, kilometrage ;
^
Ex2.c:95:40: note: previous definition of ‘kilometrage’ was here
void restitution(int disponible[], int kilometrage[] )
^
Ex2.c:104:3: warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int’ [-Wformat=]
scanf("%d", scooter);
^
Ex2.c:107:3: warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int’ [-Wformat=]
scanf("%d", kilometrage );
^
Ex2.c:117:14: error: subscripted value is neither array nor pointer nor vector
kilometrage[scooter] = kilometrage[scooter] - kilometrage ;
^
Ex2.c:117:37: error: subscripted value is neither array nor pointer nor vector
kilometrage[scooter] = kilometrage[scooter] - kilometrage ;
^
Ex2.c: In function ‘location’:
Ex2.c:138:8: error: ‘disponiblite’ undeclared (first use in this function)
if((disponiblite[i] == 1)&&(kilometrage[i] < kil))
^
Ex2.c:138:8: note: each undeclared identifier is reported only once for each function it appears in
Ex2.c: At top level:
Ex2.c:170:6: warning: return type of ‘main’ is not ‘int’ [-Wmain]
void main ()
^
Ex2.c: In function ‘main’:
Ex2.c:174:2: warning: implicit declaration of function ‘intialisation’ [-Wimplicit-function-declaration]
intialisation(disponibilite[N], kilometrage[N]);
^
Ex2.c:174:16: error: ‘disponibilite’ undeclared (first use in this function)
intialisation(disponibilite[N], kilometrage[N]);
^
Ex2.c:182:4: warning: passing argument 1 of ‘location’ makes pointer from integer without a cast [enabled by default]
location(disponible[N], kilometrage[N]);
^
Ex2.c:122:6: note: expected ‘int *’ but argument is of type ‘int’
void location(int disponible[], int kilometrage[] )
^
Ex2.c:182:4: warning: passing argument 2 of ‘location’ makes pointer from integer without a cast [enabled by default]
location(disponible[N], kilometrage[N]);
^
Ex2.c:122:6: note: expected ‘int *’ but argument is of type ‘int’
void location(int disponible[], int kilometrage[] )
^
Ex2.c:186:4: warning: passing argument 1 of ‘restitution’ makes pointer from integer without a cast [enabled by default]
restitution(disponible[N], kilometrage[N]);
^
Ex2.c:95:6: note: expected ‘int *’ but argument is of type ‘int’
void restitution(int disponible[], int kilometrage[] )
^
Ex2.c:186:4: warning: passing argument 2 of ‘restitution’ makes pointer from integer without a cast [enabled by default]
restitution(disponible[N], kilometrage[N]);
^
Ex2.c:95:6: note: expected ‘int *’ but argument is of type ‘int’
void restitution(int disponible[], int kilometrage[] )
^
Ex2.c:190:4: warning: passing argument 1 of ‘etat_du_parc’ makes pointer from integer without a cast [enabled by default]
etat_du_parc(disponible[N], kilometrage[N]);
^
Ex2.c:65:6: note: expected ‘int *’ but argument is of type ‘int’
void etat_du_parc(int disponible[], int kilometrage[] )
^
Ex2.c:190:4: warning: passing argument 2 of ‘etat_du_parc’ makes pointer from integer without a cast [enabled by default]
etat_du_parc(disponible[N], kilometrage[N]);
^
Ex2.c:65:6: note: expected ‘int *’ but argument is of type ‘int’
void etat_du_parc(int disponible[], int kilometrage[] )
^


En esperant avoir été le plus clair possible .
Merci d'avance,

3 réponses

Avatar
Olivier Miakinen
Bonjour,

Le 07/02/2015 23:22, Lazzouz a écrit :
Bonjour,
Je suis en licence informatique 1ere année et débutant en c.
J'étais en train de refaire mon partiel d'intoduction à la programmation et de
faire le programme demandé mais je n'arrive pas a compiler, je ne comprend pas
les erreurs de compilation , et je m'oriente vers ce forum pour savoir si
quelqu'un voudrais bien m'aider.



J'ai jeté un coup d'œil aux erreurs, pour la plupart elles me semblent
assez claires, il suffit juste à mon avis de comprendre suffisamment
d'anglais.

Le But générale du programme étant la gestion d'un magasin spécialiste de
location de scooters, chaque scooter est caractériser par son numéro de [0,N[,
sa disponibilité (1 si disponible, 0 sinon) et son kilométrage.
Avec pour Menu : 1- Louer un scooter, 2-Rendre un scooter, 3-Afficher l'Etat du
parc, 4- Quitter, à la suite de l'affichagede l'état du parc j'affiche le nombre
de scooter disponible et le nombre de kilométrage moyen.
Je repete que je suis débutant en langage C et que je ne suis pas très à l'aise
avec les fonctions/Procédures,



Ok.

Les en-tête des fonctions et procédures que j'ai programmées sont demander par
question séparer et j'ai écris le "e;e;e;main"e;e;e; à la fin pour vérifier le
programme:



« e;e;e; » ???


(Pour tous les "e;For"e; suivant : i=0 ; i inérieur à N, i egale i plus 1; entre
parentheses...)



Alors là, je suis désolé, mais c'est parfaitement incompréhensible.


#include <stdio.h>
#include <stdlib.h>
#define N 3
#define MAX 100000



Je comprends d'après la suite que N est le nombre total de scooters
disponibles en MAX leur kilométrage maximal. Ce n'est pas très élevé,
mais peu importe puisque c'est juste un exercice.

int saisir_choix()
{
/*Fonction qui ne prend rien en entrée qui affiche le menu
* et demande à l'utilisateur de saisir son choix au clavier
* et retourne le numéro choisit */

int choix;

printf("nMenu :");
printf("1:Louer un scooter; 2:Rendre un scooter;");
printf("3:Afficher l'état du parc; 4:Quitter;n");



Je suppose qu'il y a n au lieu de n à la fin de la chaîne.

printf("Votre choix: ");
scanf("%d", &choix);



Dans un « vrai » programme on n'utilisera pas scanf, mais bon, ce
n'est peut-être pas le point essentiel de l'exercie non plus.


return choix;

}

int nb_dispos(int disponible[] )
{
/*Cette fonction prend en entrée le tableau disponible



Note le commentaire qui correspond bien à ce qui précède.

* et qui retourne le nombre de scooter disponible */

int i, nb_scooter;
nb_scooter = 0 ;

for(i=0;i<N; i++)
{
if (disponible[i]==1)
nb_scooter = nb_scooter + 1 ;
}

return nb_scooter;

}

double kilometrage_moyen(int kilometrage[])
{
/*Cette fonction prend en entrée le tableau kilometrage



Idem.

* et retourne le nombre de kilometre parcourus en moyenne
* par scooters*/

double kil_moy, somme;
int i;
somme = 0 ;

for (i=0 ; i<N ; i++)
{
somme = somme + kilometrage[i];

}

kil_moy = somme / N ;

return kil_moy;

}

void etat_du_parc(int disponible[], int kilometrage[] )
{
/*Cette procedure prend en entrée le tableau disponible,
* et le tableau kilometrage;



Idem.

* elle affiche l'etat du parc ; scooter dispo et kilometrage
* puis fait appelle au fonction nb_dispos; kilometrage_moyen */

int i;
double kil_moy;
int dispo;


for (i=0; i<N ; i++)
{
printf("scooter n%d --", i);
printf(" Disponible ");
if (disponible[i]==1)
printf("; Oui --");
else printf(" Non --");

printf(" Kilometrage %d n", kilometrage[i]);
}

dispo = nb_dispos() ;
kil_moy = kilometrage_moyen();



Voir plus loin pour les erreurs ici.

printf("N_DISPO=%d ", dispo);
printf("K_MOYEN= %1.1f n", kil_moy);

}

void restitution(int disponible[], int kilometrage[] )
{
/*Cette procedure prend en entrée les tableaux disponible
* et kilometrage , demande le numero du scooter a rendre et
* la distance qu'il a parcourue */

int scooter, kilometrage ;

printf("Donner le numero du scooter à rendre : ");
scanf("%d", scooter);

printf("Donner la distance parcourue : ");
scanf("%d", kilometrage );

if (disponible[scooter] == 1)
{
printf("** Erreur , le scooter n'as pas etait emprunté n");

}

else

kilometrage[scooter] = kilometrage[scooter] - kilometrage ;



Ah ? Quand tu parcours 100 km, le compteur est *diminué* de 100 km ?

disponible[scooter] = 1;

}

void location(int disponible[], int kilometrage[] )
{
/*Cette procédure prend en entree le tableau disponible et le
* tableau kilometrage qui fait la recherche du scooter avec
* le kilometrage le plus faible et modifie tableaux disponible */
int i;

int kil;


kil = MAX;



kil est un nombre de kilomètres.


for (i=0; i<N ; i++)
{

if((disponiblite[i] == 1)&&(kilometrage[i] < kil))



Tu compares kil à un nombre de kilomètres.

{

kil = i;



Et là, d'un seul coup, kil devient un numéro de scooter. Il n'y a
pas un problème par ici ???

}
}

printf(";On vous donne le scooter %d : ", kil);



Ah oui, kil est bien devenu un numéro de scooter. ;-)

printf("n");

}

void initialisation(int disponibilite[], int kilometrage[])
{
/*Cette procédure prend en entree les deux tableaux, pour les
* initialisés, et retourne leur valeur (procédure facultatif au programme
* demandé*/

int i ;

for (i=0; i<N ;i++)
{
disponibilite[i] = 1 ;
}

for (i=0;i<N;i++)
{
kilometrage[i]=0;
}

}

void main ()
{
int kilometrage[N], disponible[N];



Ceci définit des tableaux de taille N

int choix;
intialisation(disponibilite[N], kilometrage[N]);



Mais ici, disponibilite[N] et kilometrage[N] désignent non pas
les tableaux, mais un élément numéro N, c'est-à-dire le N+1-iéme
élément d'un tableau à N éléments !


do
{
choix = saisir_choix();

if (choix == 1)
{
location(disponible[N], kilometrage[N]);
}
else if (choix == 2)
{
restitution(disponible[N], kilometrage[N]);
}
else if (choix == 3)
{
etat_du_parc(disponible[N], kilometrage[N]);
}

}
while (choix!=4);

if ((choix<1)||(choix>4))
{
printf("*** Erreur de la saisie ***");

}
}




Bon, venons-en aux erreurs de compilation.

Les Erreurs de compilations :

gcc -Wall -c "Ex2.c" (in directory: /home/*******/Documents/Partiel_prog)
Compilation failed.
Ex2.c: In function ‘etat_du_parc’:
Ex2.c:88:2: error: too few arguments to function ‘nb_dispos’
dispo = nb_dispos() ;
^
Ex2.c:25:5: note: declared here
int nb_dispos(int disponible[] )



Ça me semble assez clair. On te dit que tu appelles la fonction
nb_dispos avec trop peu d'arguments (too few arguments) puisque tu
passes zéro argument, et on te rappelle comment elle était déclarée,
avec un argument. En outre, les numéros de ligne sont rappelés pour
les deux endroits (déclaration et appel). Qu'est-ce que tu ne
comprends pas là-dedans ?

^
Ex2.c:89:2: error: too few arguments to function ‘kilometrage_moyen’
kil_moy = kilometrage_moyen();
^
Ex2.c:43:8: note: declared here
double kilometrage_moyen(int kilometrage[])
^



Idem.

Ex2.c: In function ‘restitution’:
Ex2.c:101:16: error: ‘kilometrage’ redeclared as different kind of symbol
int scooter, kilometrage ;
^
Ex2.c:95:40: note: previous definition of ‘kilometrage’ was here
void restitution(int disponible[], int kilometrage[] )
^



Là encore, il suffit de lire. Tu définis un entier 'kilometrage' en
ligne 101, alors qu'en ligne 95 tu passais à la fonction un tableau
d'entiers avec le même nom.

Ex2.c:104:3: warning: format ‘%d’ expects argument of type ‘int *’, but argument
2 has type ‘int’ [-Wformat=]
scanf("%d", scooter);
^
Ex2.c:107:3: warning: format ‘%d’ expects argument of type ‘int *’, but argument
2 has type ‘int’ [-Wformat=]
scanf("%d", kilometrage );
^



Lis le manuel de la fonction scanf. Avec le format '%d', tu dois lui
passer un pointeur vers entier, alors que tu lui passes juste un entier.

Ex2.c:117:14: error: subscripted value is neither array nor pointer nor vector
kilometrage[scooter] = kilometrage[scooter] - kilometrage ;
^
Ex2.c:117:37: error: subscripted value is neither array nor pointer nor vector
kilometrage[scooter] = kilometrage[scooter] - kilometrage ;
^



Problème déjà signalé : tu as donné le même nom à un entier et à un
tableau d'entiers.

Ex2.c: In function ‘location’:
Ex2.c:138:8: error: ‘disponiblite’ undeclared (first use in this function)
if((disponiblite[i] == 1)&&(kilometrage[i] < kil))
^



Simple faute de frappe. Ce qui te rend plus difficile à lire quand c'est
un article de news (comme ton « inérieur » écrit plus haut) devient
carrément impossible à comprendre pour un compilateur.

[...]



Bon, je ne continue pas. Quand le compilateur est assez sympa pour
te donner des messages aussi clairs (en particulier celui à propos du
format pour scanf, je ne savais même pas qu'il faisait ça), je pense
que tu devrais pouvoir au moins corriger les erreurs les plus
flagrantes.

Cordialement,
--
Olivier Miakinen
Avatar
lazzouz
Le samedi 07 Février 2015 à 23:22 par Lazzouz :
Bonjour,
Je suis en licence informatique 1ere année et débutant en c.
J'étais en train de refaire mon partiel d'intoduction à la
programmation et de faire le programme demandé mais je n'arrive pas a
compiler, je ne comprend pas les erreurs de compilation , et je m'oriente vers
ce forum pour savoir si quelqu'un voudrais bien m'aider.
Le But générale du programme étant la gestion d'un magasin
spécialiste de location de scooters, chaque scooter est
caractériser par son numéro de [0,N[, sa disponibilité (1
si disponible, 0 sinon) et son kilométrage.
Avec pour Menu : 1- Louer un scooter, 2-Rendre un scooter, 3-Afficher l'Etat du
parc, 4- Quitter, à la suite de l'affichagede l'état du parc
j'affiche le nombre de scooter disponible et le nombre de kilométrage
moyen.
Je repete que je suis débutant en langage C et que je ne suis pas
très à l'aise avec les fonctions/Procédures,
Les en-tête des fonctions et procédures que j'ai
programmées sont demander par question séparer et j'ai
écris le "e;e;e;main"e;e;e; à la fin pour
vérifier le programme:

(Pour tous les "e;For"e; suivant : i=0 ; i inérieur à
N, i egale i plus 1; entre parentheses...)

#include
#include
#define N 3
#define MAX 100000


int saisir_choix()
{
/*Fonction qui ne prend rien en entrée qui affiche le menu
* et demande à l'utilisateur de saisir son choix au clavier
* et retourne le numéro choisit */

int choix;

printf("nMenu :");
printf("1:Louer un scooter; 2:Rendre un scooter;");
printf("3:Afficher l'état du parc; 4:Quitter;n");
printf("Votre choix: ");
scanf("%d", &choix);

return choix;

}

int nb_dispos(int disponible[] )
{
/*Cette fonction prend en entrée le tableau disponible
* et qui retourne le nombre de scooter disponible */

int i, nb_scooter;
nb_scooter = 0 ;

for(i=0;i{
if (disponible[i]==1)
nb_scooter = nb_scooter + 1 ;
}

return nb_scooter;

}

double kilometrage_moyen(int kilometrage[])
{
/*Cette fonction prend en entrée le tableau kilometrage
* et retourne le nombre de kilometre parcourus en moyenne
* par scooters*/

double kil_moy, somme;
int i;
somme = 0 ;

for (i=0 ; i{
somme = somme + kilometrage[i];

}

kil_moy = somme / N ;

return kil_moy;

}

void etat_du_parc(int disponible[], int kilometrage[] )
{
/*Cette procedure prend en entrée le tableau disponible,
* et le tableau kilometrage;
* elle affiche l'etat du parc ; scooter dispo et kilometrage
* puis fait appelle au fonction nb_dispos; kilometrage_moyen */

int i;
double kil_moy;
int dispo;


for (i=0; i{
printf("scooter n%d --", i);
printf(" Disponible ");
if (disponible[i]==1)
printf("; Oui --");
else printf(" Non --");

printf(" Kilometrage %d n", kilometrage[i]);
}

dispo = nb_dispos() ;
kil_moy = kilometrage_moyen();
printf("N_DISPO=%d ", dispo);
printf("K_MOYEN= %1.1f n", kil_moy);

}

void restitution(int disponible[], int kilometrage[] )
{
/*Cette procedure prend en entrée les tableaux disponible
* et kilometrage , demande le numero du scooter a rendre et
* la distance qu'il a parcourue */

int scooter, kilometrage ;

printf("Donner le numero du scooter à rendre : ");
scanf("%d", scooter);

printf("Donner la distance parcourue : ");
scanf("%d", kilometrage );

if (disponible[scooter] == 1)
{
printf("** Erreur , le scooter n'as pas etait emprunté
n");

}

else

kilometrage[scooter] = kilometrage[scooter] - kilometrage ;
disponible[scooter] = 1;

}

void location(int disponible[], int kilometrage[] )
{
/*Cette procédure prend en entree le tableau disponible et le
* tableau kilometrage qui fait la recherche du scooter avec
* le kilometrage le plus faible et modifie tableaux disponible */
int i;

int kil;


kil = MAX;

for (i=0; i{

if((disponiblite[i] == 1)&&(kilometrage[i] < kil))
{

kil = i;
}
}

printf(";On vous donne le scooter %d : ", kil);
printf("n");

}

void initialisation(int disponibilite[], int kilometrage[])
{
/*Cette procédure prend en entree les deux tableaux, pour les
* initialisés, et retourne leur valeur (procédure facultatif au
programme
* demandé*/

int i ;

for (i=0; i{
disponibilite[i] = 1 ;
}

for (i=0;i{
kilometrage[i]=0;
}

}

void main ()
{
int kilometrage[N], disponible[N];
int choix;
intialisation(disponibilite[N], kilometrage[N]);

do
{
choix = saisir_choix();

if (choix == 1)
{
location(disponible[N], kilometrage[N]);
}
else if (choix == 2)
{
restitution(disponible[N], kilometrage[N]);
}
else if (choix == 3)
{
etat_du_parc(disponible[N], kilometrage[N]);
}

}
while (choix!=4);

if ((choix<1)||(choix>4))
{
printf("*** Erreur de la saisie ***");

}
}

Les Erreurs de compilations :

gcc -Wall -c "Ex2.c" (in directory:
/home/*******/Documents/Partiel_prog)
Compilation failed.
Ex2.c: In function ‘etat_du_parc’:
Ex2.c:88:2: error: too few arguments to function ‘nb_dispos’
dispo = nb_dispos() ;
^
Ex2.c:25:5: note: declared here
int nb_dispos(int disponible[] )
^
Ex2.c:89:2: error: too few arguments to function
‘kilometrage_moyen’
kil_moy = kilometrage_moyen();
^
Ex2.c:43:8: note: declared here
double kilometrage_moyen(int kilometrage[])
^
Ex2.c: In function ‘restitution’:
Ex2.c:101:16: error: ‘kilometrage’ redeclared as different kind of
symbol
int scooter, kilometrage ;
^
Ex2.c:95:40: note: previous definition of ‘kilometrage’ was here
void restitution(int disponible[], int kilometrage[] )
^
Ex2.c:104:3: warning: format ‘%d’ expects argument of type
‘int *’, but argument 2 has type ‘int’ [-Wformat=]
scanf("%d", scooter);
^
Ex2.c:107:3: warning: format ‘%d’ expects argument of type
‘int *’, but argument 2 has type ‘int’ [-Wformat=]
scanf("%d", kilometrage );
^
Ex2.c:117:14: error: subscripted value is neither array nor pointer nor vector
kilometrage[scooter] = kilometrage[scooter] - kilometrage ;
^
Ex2.c:117:37: error: subscripted value is neither array nor pointer nor vector
kilometrage[scooter] = kilometrage[scooter] - kilometrage ;
^
Ex2.c: In function ‘location’:
Ex2.c:138:8: error: ‘disponiblite’ undeclared (first use in this
function)
if((disponiblite[i] == 1)&&(kilometrage[i] < kil))
^
Ex2.c:138:8: note: each undeclared identifier is reported only once for each
function it appears in
Ex2.c: At top level:
Ex2.c:170:6: warning: return type of ‘main’ is not
‘int’ [-Wmain]
void main ()
^
Ex2.c: In function ‘main’:
Ex2.c:174:2: warning: implicit declaration of function
‘intialisation’ [-Wimplicit-function-declaration]
intialisation(disponibilite[N], kilometrage[N]);
^
Ex2.c:174:16: error: ‘disponibilite’ undeclared (first use in this
function)
intialisation(disponibilite[N], kilometrage[N]);
^
Ex2.c:182:4: warning: passing argument 1 of ‘location’ makes
pointer from integer without a cast [enabled by default]
location(disponible[N], kilometrage[N]);
^
Ex2.c:122:6: note: expected ‘int *’ but argument is of type
‘int’
void location(int disponible[], int kilometrage[] )
^
Ex2.c:182:4: warning: passing argument 2 of ‘location’ makes
pointer from integer without a cast [enabled by default]
location(disponible[N], kilometrage[N]);
^
Ex2.c:122:6: note: expected ‘int *’ but argument is of type
‘int’
void location(int disponible[], int kilometrage[] )
^
Ex2.c:186:4: warning: passing argument 1 of ‘restitution’ makes
pointer from integer without a cast [enabled by default]
restitution(disponible[N], kilometrage[N]);
^
Ex2.c:95:6: note: expected ‘int *’ but argument is of type
‘int’
void restitution(int disponible[], int kilometrage[] )
^
Ex2.c:186:4: warning: passing argument 2 of ‘restitution’ makes
pointer from integer without a cast [enabled by default]
restitution(disponible[N], kilometrage[N]);
^
Ex2.c:95:6: note: expected ‘int *’ but argument is of type
‘int’
void restitution(int disponible[], int kilometrage[] )
^
Ex2.c:190:4: warning: passing argument 1 of ‘etat_du_parc’ makes
pointer from integer without a cast [enabled by default]
etat_du_parc(disponible[N], kilometrage[N]);
^
Ex2.c:65:6: note: expected ‘int *’ but argument is of type
‘int’
void etat_du_parc(int disponible[], int kilometrage[] )
^
Ex2.c:190:4: warning: passing argument 2 of ‘etat_du_parc’ makes
pointer from integer without a cast [enabled by default]
etat_du_parc(disponible[N], kilometrage[N]);
^
Ex2.c:65:6: note: expected ‘int *’ but argument is of type
‘int’
void etat_du_parc(int disponible[], int kilometrage[] )
^


En esperant avoir été le plus clair possible .
Merci d'avance,


Merci beaucoup pour les reponses et votre temps passé dessus ! , pour les premieres reponses en postant le code beaucoup de caracteres ne se sont pas affiché ( antislash, compteur ) et certain ajout on etait fait comme: "e;", pour les autres reponses et vos precieux commentaire : merci beaucoup ça ma aidé et j'ai pu corrigé les erreurs.

Cordialement,
Avatar
Olivier Miakinen
Le 08/02/2015 17:28, lazzouz a écrit :
Le samedi 07 Février 2015 à 23:22 par Lazzouz :
[copie intégrale]





<http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html>, merci.

[...] merci beaucoup ça m[']a aidé et j'ai pu corrig[er] les erreurs.



Ok, bonne continuation.