Aide moi à créé un fichier exécutable en c
Fermé
DESIRES_6452
Messages postés
4
Date d'inscription
jeudi 28 février 2019
Statut
Membre
Dernière intervention
3 mars 2019
-
Modifié le 3 mars 2019 à 13:27
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 4 mars 2019 à 11:46
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 4 mars 2019 à 11:46
A voir également:
- Aide moi à créé un fichier exécutable en c
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Comment créer un fichier pdf - Guide
1 réponse
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 094
Modifié le 4 mars 2019 à 11:57
Modifié le 4 mars 2019 à 11:57
Bonjour DESIRES_6452,
Pour produire un exécutable, tu dois disposer d'un environnement de programmation comprenant une chaîne de compilation et d'un fichier source ne comportant pas d'erreurs de syntaxe et, si possible, correct.
Si tu es sous Windows, un environnement gratuit et assez facile à utiliser est Codeblocks avec la chaîne de compilation MinGW, qui inclue notamment le compilateur gcc porté pour Windows.
http://www.codeblocks.org/downloads/26
Utilise le 4ème lien de téléchargement pour "codeblocks-17.12mingw-setup.exe" qui permet d'automatiser l'installation de Codeblocks intégré avec un compilateur C et C++ ... n'utilise pas les autres liens (si tu as déjà installé Codeblocks et que tu as utilisé une version sans compilateur, désinstalle la version, et installe cette version avec MinGW).
Ensuite, ce n'est pas parce que le compilateur produira un exécutable que le programme sera correct.
En compilant avec les warnings (ce que fait Codeblocks par défaut avec MinGW), le code ci-avant produit un exécutable, mais signale les problèmes suivants que tu as intérêt ) corriger :
Cela est dû au fait que :
- nom est un tableau
-
Le problème suivant ne t'est pas signalé comme avertissement, ni erreur, mais comme tes variables sont des entiers (type
Enfin, bien que cela ne provoque pas d'erreurs à l'exécution, il faudrait terminer le programme avec
Dal
Pour produire un exécutable, tu dois disposer d'un environnement de programmation comprenant une chaîne de compilation et d'un fichier source ne comportant pas d'erreurs de syntaxe et, si possible, correct.
Si tu es sous Windows, un environnement gratuit et assez facile à utiliser est Codeblocks avec la chaîne de compilation MinGW, qui inclue notamment le compilateur gcc porté pour Windows.
http://www.codeblocks.org/downloads/26
Utilise le 4ème lien de téléchargement pour "codeblocks-17.12mingw-setup.exe" qui permet d'automatiser l'installation de Codeblocks intégré avec un compilateur C et C++ ... n'utilise pas les autres liens (si tu as déjà installé Codeblocks et que tu as utilisé une version sans compilateur, désinstalle la version, et installe cette version avec MinGW).
Ensuite, ce n'est pas parce que le compilateur produira un exécutable que le programme sera correct.
En compilant avec les warnings (ce que fait Codeblocks par défaut avec MinGW), le code ci-avant produit un exécutable, mais signale les problèmes suivants que tu as intérêt ) corriger :
$ gcc -Wall 35901064.c
35901064.c: In function ‘main’:
35901064.c:9:10: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[15]’ [-Wformat=]
scanf("%s",&nom); /*on saisi le nom de l'article vendu*/
^
35901064.c:16:23: warning: left-hand operand of comma expression has no effect [-Wunused-value]
pa=((pu*qt)-(pu*qt*0,2)); /*réduction accoré à un client qui achète plus de 20 articles on lui rembourse 20% du prix d'achat */
^
Cela est dû au fait que :
- nom est un tableau
char nom[15];et que par conséquent, il suffit de passer
scanf("%s",nom);sans l'esperluette (&) pour passer un pointeur vers le premier élément de ce tableau à scanf
-
0,2n'indique pas correctement en C un nombre avec des décimales, car il faut utiliser la notation anglosaxone
0.2...
Le problème suivant ne t'est pas signalé comme avertissement, ni erreur, mais comme tes variables sont des entiers (type
int), ton résultat sera un entier. Est-ce bien cela que tu veux ?
Enfin, bien que cela ne provoque pas d'erreurs à l'exécution, il faudrait terminer le programme avec
return 0;pour que le code soit conforme à la norme du C et corriger le prototype de main en
int main(void)pour la même raison ...
Dal