Langage c
Fermé
neopremium
Messages postés
4
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
22 septembre 2009
-
22 sept. 2009 à 01:08
neopremium Messages postés 4 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 22 septembre 2009 - 22 sept. 2009 à 13:09
neopremium Messages postés 4 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 22 septembre 2009 - 22 sept. 2009 à 13:09
A voir également:
- Langage c
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Dev-Pascal - Télécharger - Édition & Programmation
4 réponses
neopremium
Messages postés
4
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
22 septembre 2009
1
22 sept. 2009 à 13:09
22 sept. 2009 à 13:09
merci bien, j'ai deja trouvé cette erreur
mamiemando
Messages postés
33545
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
25 février 2025
7 829
22 sept. 2009 à 01:18
22 sept. 2009 à 01:18
Et bien je ne suis pas surprise :-). En fait il manque pas mal d'accolades fermantes.
Je t'invite vivement à indenter ton code si tu ne le fais pas déjà. Pour les if ... else ... je t'invite dans un premier temps à systématiquement mettre des accolades même s'il n'y a qu'une instruction. Ou alors dans le cas où il n'y a qu'une instruction, écris ladite instruction sur la même ligne que le if ou que le else.
Exemple
devient :
Modulo ça il y a des instructions comme :
qui n'ont pas de sens...
ou encore :
Exemple :
Grâce à l'indentation on voit clairement que la fonction calcul est déclarée dans la boucle for de la fonction saisie (ce qui n'a pas de sens).
Ça peut paraître un peu naïf mais c'est le genre de truc qui sauve la vie (notamment quand on rajoute une instruction dans un bloc, on est sûr de pas se faire avoir). Par rapport au code il est dommage que tu utilises conio.h et les fonctions qui en dépendent (gotoxy etc...) car du coup le programme n'est pas portable.
Je ne sais pas ce que tu utilises pour coder, mais je t'invite à utiliser un éditeur qui indente le code (par exemple devcpp, code::blocks, gvim etc...).
Il y a également des instructions qui n'ont pas de sens comme par exemple :
En effet la chaîne manipulée est considérée ANSI. ... Or ≠ est un caractère unicode. Il faut donc soit manipuler une chaîne unicode, soit se restreindre à l'utilisation de caractère ANSI. Les chaines unicode sont préfixées par un L (par exemple L"pouet" au lieu de "pouet) et chaque caractère occupe deux bytes au lieu d'un.
Bonne chance
Je t'invite vivement à indenter ton code si tu ne le fais pas déjà. Pour les if ... else ... je t'invite dans un premier temps à systématiquement mettre des accolades même s'il n'y a qu'une instruction. Ou alors dans le cas où il n'y a qu'une instruction, écris ladite instruction sur la même ligne que le if ou que le else.
Exemple
if (...) ... else ...
devient :
if (...) .... else ...
Modulo ça il y a des instructions comme :
scanf("%s",≠);
qui n'ont pas de sens...
ou encore :
if (...){ .... }else{ ... }
Exemple :
... void saisie() { int i; clrscr(); //informations g‚n‚rales printf("entrer le nom de l'orhanisme:"); scanf("%s",&no); printf("entrer mois de paiement:"); scanf("%s",&mp); printf("entrer le nom de l'organisme:"); scanf("%s",≠); for (i=0;i<ne;i++) { clrscr(); printf("--------------------------------------\n"); printf("Information sur l'employ‚:%d\n",i); printf("--------------------------------------\n"); printf("entrer le matricule:"); scanf("%d",&E[i].mat); printf("entrer le nom:"); scanf("%s",&E[i].nom); printf("entrer le prenom:"); scanf("%d",&E[i].prenom); printf("entrer le salaire de base:"); scanf("%d",&E[i].sb); printf("entrer l'anciennet‚:"); scanf("%d",E[i].an); { u=1; v=0; } //fonction calcul des salaires void calcul () ...
Grâce à l'indentation on voit clairement que la fonction calcul est déclarée dans la boucle for de la fonction saisie (ce qui n'a pas de sens).
Ça peut paraître un peu naïf mais c'est le genre de truc qui sauve la vie (notamment quand on rajoute une instruction dans un bloc, on est sûr de pas se faire avoir). Par rapport au code il est dommage que tu utilises conio.h et les fonctions qui en dépendent (gotoxy etc...) car du coup le programme n'est pas portable.
Je ne sais pas ce que tu utilises pour coder, mais je t'invite à utiliser un éditeur qui indente le code (par exemple devcpp, code::blocks, gvim etc...).
Il y a également des instructions qui n'ont pas de sens comme par exemple :
scanf("%s",≠);
En effet la chaîne manipulée est considérée ANSI. ... Or ≠ est un caractère unicode. Il faut donc soit manipuler une chaîne unicode, soit se restreindre à l'utilisation de caractère ANSI. Les chaines unicode sont préfixées par un L (par exemple L"pouet" au lieu de "pouet) et chaque caractère occupe deux bytes au lieu d'un.
Bonne chance
neopremium
Messages postés
4
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
22 septembre 2009
1
22 sept. 2009 à 01:22
22 sept. 2009 à 01:22
merci bien je vais essayer d'appliquer ce que tu m'as dit .
j'utilise le turbo c
j'utilise le turbo c
watou
Messages postés
199
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
19 avril 2013
28
22 sept. 2009 à 13:00
22 sept. 2009 à 13:00
au lieu de faire ceci :
#define ccnss = 0.0429
#define pcnss = 257.40
#define crt = 0.0475
#define cfp = 0.17
#define pfp = 2000
#define cpf = 15
faites plutot cela :
#define ccnss 0.0429
#define pcnss 257.40
#define crt 0.0475
#define cfp 0.17
#define pfp 2000
#define cpf 15
// #define identificateur valeur !!!!
// ou identificateur est celui que vous allez utiliser dans votre programme
// et il sera remplacé par valeur lors de la compilation par le preprocesseur c !!
#define ccnss = 0.0429
#define pcnss = 257.40
#define crt = 0.0475
#define cfp = 0.17
#define pfp = 2000
#define cpf = 15
faites plutot cela :
#define ccnss 0.0429
#define pcnss 257.40
#define crt 0.0475
#define cfp 0.17
#define pfp 2000
#define cpf 15
// #define identificateur valeur !!!!
// ou identificateur est celui que vous allez utiliser dans votre programme
// et il sera remplacé par valeur lors de la compilation par le preprocesseur c !!