(ouvrir ) compiler et exécuter un fichier incluant un prototype
eugenieraza
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Mon problème est difficile à expliquer : j'apprends à faire un prototype pour m'entraîner à parcourir un tableau.
<code .h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
parcourirTableauNombre(tableau[4]); // prototype
parcourirTableauNombre(tableau[4]) //La fonction que je veux créer
{
int tableau[4];
for (i = 0 ; i < 4 ; i++)
{
printf("%d\n, tableau[4])";
}
return 0;
}
/*un fichier .h préfabriqué par moi,à inclure dans un fichier pour manipuler
chaque fois que j'ai besoin de parcourir un tableau.
Message du compilateur:
"
Nothing to be done (all items are up-to-date).
Checking for existence: C:\Users\Fiona\OneDrive\Documents\tableau_c_perso\parcourirTableauNombreFonction.exe
"
comment fait-on pour vérifier s'il y a une erreur? parce que le compilateur me crée quand même un .exe et ne veut plus charger et compiler le fichier principal.
<code.c>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "parcourirTableauNombreFonction.h"
int main(int argc, char *argv[])
{
int tableau[4], i = 0;
tableau[0] = 10;
tableau[1] = 23;
tableau[2] = 505;
tableau[3] = 8;
parcourirTableauNombreFonction(tableau[4]);
printf("%d", tableau[i]);
return 0;
}
Mon problème est difficile à expliquer : j'apprends à faire un prototype pour m'entraîner à parcourir un tableau.
<code .h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
parcourirTableauNombre(tableau[4]); // prototype
parcourirTableauNombre(tableau[4]) //La fonction que je veux créer
{
int tableau[4];
for (i = 0 ; i < 4 ; i++)
{
printf("%d\n, tableau[4])";
}
return 0;
}
/*un fichier .h préfabriqué par moi,à inclure dans un fichier pour manipuler
chaque fois que j'ai besoin de parcourir un tableau.
Message du compilateur:
"
Nothing to be done (all items are up-to-date).
Checking for existence: C:\Users\Fiona\OneDrive\Documents\tableau_c_perso\parcourirTableauNombreFonction.exe
"
- /
comment fait-on pour vérifier s'il y a une erreur? parce que le compilateur me crée quand même un .exe et ne veut plus charger et compiler le fichier principal.
<code.c>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "parcourirTableauNombreFonction.h"
int main(int argc, char *argv[])
{
int tableau[4], i = 0;
tableau[0] = 10;
tableau[1] = 23;
tableau[2] = 505;
tableau[3] = 8;
parcourirTableauNombreFonction(tableau[4]);
printf("%d", tableau[i]);
return 0;
}
A voir également:
- (ouvrir ) compiler et exécuter un fichier incluant un prototype
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Ouvrir un fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment réduire la taille d'un fichier - Guide
2 réponses
Salut, tu est sous quel IDE ? Il se peut que l'IDE ne tiens pas compte des modifications dans les header lors de la vérification de "changements".
De toute façon il vaut mieux mettre les prototypes dans des header et les fonctions dans des fichiers c.
De toute façon il vaut mieux mettre les prototypes dans des header et les fonctions dans des fichiers c.
Bonjour,
parcourirTableauNombre(tableau[4]); // prototype
Ton prototype est faux. C'est plutôt :
Du code dans le header, oublie. C'est une très mauvaise idée. Dans le header, tu mets les prototypes et dans le .c ton code.
printf("%d\n, tableau[4])";
tableau[4] n'existe pas. Le dernier élément est : tableau[3]...
Toi, ce que tu souhaites c'est d'afficher chacun des éléments du tableau, donc
parcourirTableauNombreFonction(tableau[4]);
Pour appeler la fonction avec le tableau en paramètre, il faut enlever [4]. Donc :
printf("%d", tableau[i]);
Il vaut mieux mettre un espace, sinon tout sera collé. De plus, il manque une boucle for.
Cdlt,
parcourirTableauNombre(tableau[4]); // prototype
Ton prototype est faux. C'est plutôt :
int parcourirTableauNombre( int tableau[4]);
Du code dans le header, oublie. C'est une très mauvaise idée. Dans le header, tu mets les prototypes et dans le .c ton code.
printf("%d\n, tableau[4])";
tableau[4] n'existe pas. Le dernier élément est : tableau[3]...
Toi, ce que tu souhaites c'est d'afficher chacun des éléments du tableau, donc
printf("%d\n, tableau[i])";
parcourirTableauNombreFonction(tableau[4]);
Pour appeler la fonction avec le tableau en paramètre, il faut enlever [4]. Donc :
parcourirTableauNombreFonction(tableau);
printf("%d", tableau[i]);
Il vaut mieux mettre un espace, sinon tout sera collé. De plus, il manque une boucle for.
Cdlt,
Bonsoir Fiddy,
Et merci pour ta réponse. Mais je suis débutante et je ne comprend pas tout.
1 Je vois que j'ai j'ai mis <code.h> parce que je ne savais comment le présenter mais c'est bien le prototype que je mets dedans.
2 d'après ta correction je vois déjà que j'ai oublié le type int
3 c'est bien tableau [4] dans mon exercice. Quand on ne met que 3 éléments dans le tableau [4], le dernier élément, contenu dans tableau[3] est "0" (d'après le cours que j'ai vu.
4 afficher chacun des éléments du tableau : j'ai mis tableau[i] effectivement la 1ère fois mais ça n'a pas marché donc j'ai changé pour voir ce que ça donne mais toujours pareil, ça compile mais n'affiche qu'une valeur en fait.
y a t-il un moyen de joindre un imprim'ecran (j'en ai fait) dans les réponses?
je réessaie avec tes corrections (pas aujourd'hui, je suis saturée), je te tiens au courant .
Je suis vraiment tout au début, chapitre 2!
bonsoir
Et merci pour ta réponse. Mais je suis débutante et je ne comprend pas tout.
1 Je vois que j'ai j'ai mis <code.h> parce que je ne savais comment le présenter mais c'est bien le prototype que je mets dedans.
2 d'après ta correction je vois déjà que j'ai oublié le type int
3 c'est bien tableau [4] dans mon exercice. Quand on ne met que 3 éléments dans le tableau [4], le dernier élément, contenu dans tableau[3] est "0" (d'après le cours que j'ai vu.
4 afficher chacun des éléments du tableau : j'ai mis tableau[i] effectivement la 1ère fois mais ça n'a pas marché donc j'ai changé pour voir ce que ça donne mais toujours pareil, ça compile mais n'affiche qu'une valeur en fait.
y a t-il un moyen de joindre un imprim'ecran (j'en ai fait) dans les réponses?
je réessaie avec tes corrections (pas aujourd'hui, je suis saturée), je te tiens au courant .
Je suis vraiment tout au début, chapitre 2!
bonsoir
Je vois que j'ai j'ai mis <code .h> parce que je ne savais comment le présenter mais c'est bien le prototype que je mets dedans.
Dans ton post, tu as mis parcourirTableauNombre(tableau[4]) //La fonction que je veux créer
{
int tableau[4];
for (i = 0 ; i < 4 ; i++)
{
printf("%d\n, tableau[4])";
}
return 0;
dans le .h. Et ça, il faut éviter. On ne met que les prototypes. Ce bout-là ne représente pas le prototype. Le prototype c'est :
c'est bien tableau [4] dans mon exercice. Quand on ne met que 3 éléments dans le tableau [4], le dernier élément, contenu dans tableau[3] est "0" (d'après le cours que j'ai vu.
Euh... attention à ne pas partir dans toutes les directions. Sinon on ne va pas pouvoir t'aider efficacement. Dans ton premier post, tu as mis tableau[0] = 10;
tableau[1] = 23;
tableau[2] = 505;
tableau[3] = 8;
Donc le dernier élément n'est pas 0.
Après effectivement, si tu fais : int tableau[4] = {10, 15, 3}; tableau[3] vaudra 0.
Toujours dans ton premier post, tu as mis printf("%d\n, tableau[4])";
Et ça ce n'est pas bon puisque tu souhaites afficher tableau[4] alors que le dernier élément est tableau[3]...
Je te conseille de tout relire, de corriger avec mes remarques et de poster le résultat. On te fera nos remarques sur ce code.
Note : pour poster un code, utilise la balise <code c>. Exemple :
<code c>ici tu mets ton code</code>.
Dans ton post, tu as mis parcourirTableauNombre(tableau[4]) //La fonction que je veux créer
{
int tableau[4];
for (i = 0 ; i < 4 ; i++)
{
printf("%d\n, tableau[4])";
}
return 0;
dans le .h. Et ça, il faut éviter. On ne met que les prototypes. Ce bout-là ne représente pas le prototype. Le prototype c'est :
int parcourirTableauNombre(int tableau[4]); // prototype.
c'est bien tableau [4] dans mon exercice. Quand on ne met que 3 éléments dans le tableau [4], le dernier élément, contenu dans tableau[3] est "0" (d'après le cours que j'ai vu.
Euh... attention à ne pas partir dans toutes les directions. Sinon on ne va pas pouvoir t'aider efficacement. Dans ton premier post, tu as mis tableau[0] = 10;
tableau[1] = 23;
tableau[2] = 505;
tableau[3] = 8;
Donc le dernier élément n'est pas 0.
Après effectivement, si tu fais : int tableau[4] = {10, 15, 3}; tableau[3] vaudra 0.
Toujours dans ton premier post, tu as mis printf("%d\n, tableau[4])";
Et ça ce n'est pas bon puisque tu souhaites afficher tableau[4] alors que le dernier élément est tableau[3]...
Je te conseille de tout relire, de corriger avec mes remarques et de poster le résultat. On te fera nos remarques sur ce code.
Note : pour poster un code, utilise la balise <code c>. Exemple :
<code c>ici tu mets ton code</code>.
j'ai relu, j'ai enlevé les codes et n'a laissé quele prototype, j'ai corrigé les oublis de type mais ça ne fonctionnait toujours pas. Je réessaierai plus tard parce que j'ai un contrainte temps pour rendre des devoirs alors il faut que j'avance dans les leçons. peut être que le même problème se reposera et j'aurai un déclic pour me corriger? c'est frustrant parce que ça ne doit pas tenir à grand-chose. Et à chaque exercice j'ai un petit quelque chose qui cloche!
<code C>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void affiche(int *tableau, int tailleTableau);
int main(int argc, char *argv[])
{
int tableau[4] = {10, 15, 3};
// On affiche le contenu du tableau
affiche(tableau, 4);
return 0;
}
void affiche(int *tableau, int tailleTableau)
{
int i;
for (i = 0 ; i < tailleTableau ; i++)
{
printf("%d\n", tableau[i]);
}
}
------
le message d'erreur:
expected declaration or statement at end of input
et je ne sais pas ce que ça veut dire donc comment la corriger
Consulte mon message #2.
Cdlt,