Petit souci en C
York_7
Messages postés
101
Date d'inscription
Statut
Membre
Dernière intervention
-
York_7 Messages postés 101 Date d'inscription Statut Membre Dernière intervention -
York_7 Messages postés 101 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
voilà j'ai un infime souci:
"error syntaxe before "double"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "devise.h"
int main (int argc, char *argv[])
{
int type_conversion = 0, choix_menu = 0 ;
do
{
printf ("Choix de votre conversion:\n\n");
printf ("1. ==> Devise\n");
printf ("2. ==> Duree\n");
scanf ("%d", &choix_menu);
switch (type_conversion)
{
case 1 :
conversion (double dEuros);
break;
}
} while (type_conversion <1 || type_conversion >6);
return 0;
}
Je ne la trouve pas...
merci
voilà j'ai un infime souci:
"error syntaxe before "double"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "devise.h"
int main (int argc, char *argv[])
{
int type_conversion = 0, choix_menu = 0 ;
do
{
printf ("Choix de votre conversion:\n\n");
printf ("1. ==> Devise\n");
printf ("2. ==> Duree\n");
scanf ("%d", &choix_menu);
switch (type_conversion)
{
case 1 :
conversion (double dEuros);
break;
}
} while (type_conversion <1 || type_conversion >6);
return 0;
}
Je ne la trouve pas...
merci
6 réponses
Salut,
je pense que le prb vient de l'appel de cette fonction:
conversion (double dEuros);
Tu lui passes quoi comme paramètre ici??????;)
@+
je pense que le prb vient de l'appel de cette fonction:
conversion (double dEuros);
Tu lui passes quoi comme paramètre ici??????;)
@+
Effectivement, l'erreur vient d'ici : conversion (double dEuros);
Cette syntaxe est utilisée pour déclarer une fonction, pas pour l'appeler.
Pour l'appeler : conversion(dEuros);
Après, je n'ai pas vu la déclaration de ta variable dEuros.
Cdlt,
Cette syntaxe est utilisée pour déclarer une fonction, pas pour l'appeler.
Pour l'appeler : conversion(dEuros);
Après, je n'ai pas vu la déclaration de ta variable dEuros.
Cdlt,
Ok alors:
voici le header:
/* Prototypes */
double conversion (double dEuros);
/* Constantes */
#define EURO2FRANCS 6.55957
et la fonction du devise.c:
double conversion (double dEuros)
{
return( dEuros * EURO2FRANCS );
}
voici le header:
/* Prototypes */
double conversion (double dEuros);
/* Constantes */
#define EURO2FRANCS 6.55957
et la fonction du devise.c:
double conversion (double dEuros)
{
return( dEuros * EURO2FRANCS );
}
Salut,
tu peux essayer un truc du style:
@+
Ce n'est pas parce que certaines choses semblent inexplicables, qu'il faut faire semblant de les expliquer!
tu peux essayer un truc du style:
int main (int argc, char *argv[]) { int type_conversion = 0, choix_menu = 0 ; double dEuros; do { printf ("Choix de votre conversion:\n\n"); printf ("1. ==> Devise\n"); printf ("2. ==> Duree\n"); scanf ("%d", &type_conversion ); switch (type_conversion ) { case 1 : printf ("Entree la devise\n"); scanf ("%Lf", &dEuros); printf ("%Lf\n",conversion (dEuros)); break; } } while (type_conversion >=1 && type_conversion <6); return 0; }
@+
Ce n'est pas parce que certaines choses semblent inexplicables, qu'il faut faire semblant de les expliquer!
Attention, dEuros est un double et la fonction conversion renvoie un double.
Donc :
scanf ("%Lf", &dEuros);
C'est pas Lf qu'il faut mettre mais : scanf("%lf",&dEuros); (le L doit être en minuscule).
printf ("%Lf\n",conversion (dEuros));
Pareil, ce n'est pas Lf qu'il faut mettre mais tout simplement : printf("%f",conversion(dEuros));
Donc :
scanf ("%Lf", &dEuros);
C'est pas Lf qu'il faut mettre mais : scanf("%lf",&dEuros); (le L doit être en minuscule).
printf ("%Lf\n",conversion (dEuros));
Pareil, ce n'est pas Lf qu'il faut mettre mais tout simplement : printf("%f",conversion(dEuros));
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut chuka,
j'aurai dû te montrer tout mon devise.c:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
//COULEUR
void Color(int couleurDuTexte,int couleurDeFond) {
HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
}
int devise()
{
int choix=0, val_entree=0, val_sortie=0;
do
{
printf ("Choississez votre conversion:...\n\n");
Color (9,0);
printf (" ++++ MENU DEVISE ++++\n\n");
Color (14,0);
printf ("1. EUROS ==> FRANCS");
printf ("\t 2. EUROS ==> LIVRES");
printf ("\t 3. EUROS ==> DOLLARDS\n\n");
printf ("4. DOLLARDS ==> EUROS");
printf ("\t5. LIVRES ==> EUROS");
printf ("\t6. FRANCS ==> EUROS");
Color (15,0);
printf ("\n\n...");
if (choix == 1)
{
printf ("Valeure à convertir :\n...");
scanf ("%lf", &val_entree);
val_sortie = conversion ( val_entree );
printf ("%f € = %f FF", val_entree, val_sortie);
}
} while (choix < 1 || choix > 6);
}
double conversion (double dEuros)
{
return( dEuros * EURO2FRANCS );
}
Donc c'est pas à ce niveau que ça coince.
Error syntax before "double" dans ma main.c, ça doit pas être grand chose pourtant.
j'aurai dû te montrer tout mon devise.c:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
//COULEUR
void Color(int couleurDuTexte,int couleurDeFond) {
HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
}
int devise()
{
int choix=0, val_entree=0, val_sortie=0;
do
{
printf ("Choississez votre conversion:...\n\n");
Color (9,0);
printf (" ++++ MENU DEVISE ++++\n\n");
Color (14,0);
printf ("1. EUROS ==> FRANCS");
printf ("\t 2. EUROS ==> LIVRES");
printf ("\t 3. EUROS ==> DOLLARDS\n\n");
printf ("4. DOLLARDS ==> EUROS");
printf ("\t5. LIVRES ==> EUROS");
printf ("\t6. FRANCS ==> EUROS");
Color (15,0);
printf ("\n\n...");
if (choix == 1)
{
printf ("Valeure à convertir :\n...");
scanf ("%lf", &val_entree);
val_sortie = conversion ( val_entree );
printf ("%f € = %f FF", val_entree, val_sortie);
}
} while (choix < 1 || choix > 6);
}
double conversion (double dEuros)
{
return( dEuros * EURO2FRANCS );
}
Donc c'est pas à ce niveau que ça coince.
Error syntax before "double" dans ma main.c, ça doit pas être grand chose pourtant.
Salut,
pour le fichier devise.c
et le main:
ca devrait faire l'affaire!!;))
@+
pour le fichier devise.c
int devise() { int choix=0; double val_entree=0; double val_sortie=0; printf ("Choississez votre conversion:...\n\n"); Color (9,0); do { printf (" ++++ MENU DEVISE ++++\n\n"); Color (14,0); printf ("1. EUROS ==> FRANCS"); printf ("\t 2. EUROS ==> LIVRES"); printf ("\t 3. EUROS ==> DOLLARDS\n\n"); printf ("4. DOLLARDS ==> EUROS"); printf ("\t5. LIVRES ==> EUROS"); printf ("\t6. FRANCS ==> EUROS\n"); Color (15,0); scanf("%d",&choix); if (choix == 1) { printf ("Valeure à convertir :\n"); scanf ("%lf", &val_entree); val_sortie = conversion ( val_entree ); printf ("%f € = %f FF\n", val_entree, val_sortie); } } while (choix >= 1 && choix <7); return choix; }
et le main:
int main (int argc, char *argv[]) { int choix_menu = 0; int type_conversion = 0; do { printf ("Choix de votre conversion:\n\n"); printf ("1. ==> Devise\n"); printf ("2. ==> Duree\n"); scanf ("%d", &choix_menu); switch (choix_menu) { case 1 : type_conversion=devise(); break; } } while (type_conversion >=1 && type_conversion <6); return 0; }
ca devrait faire l'affaire!!;))
@+
Tu sors de ta boucle principale si type_conversion n'est pas compris entre 1et 6...c'est ce qui te fais sortir de devise()....
Sinon, tu sors direct de ta boucle principal....(car type_conversion =0 à l'init...)
type_conversion=devise(); fonctionne très bien...
type_conversion = conversion (double dEuros) ????? conversion te renvoie un double.....pas un int....ce que tu veux c'est le resultat de la conversion, non?? en double et non en int!!Et l'appel de ta fonction conversion dois prendre en parametre un double, comme tu l'a bien fais dans la fonction devise()....qui appel correctement cette fonction!!!
Donc je comprends pas où tu bloque....
Sinon, tu sors direct de ta boucle principal....(car type_conversion =0 à l'init...)
type_conversion=devise(); fonctionne très bien...
type_conversion = conversion (double dEuros) ????? conversion te renvoie un double.....pas un int....ce que tu veux c'est le resultat de la conversion, non?? en double et non en int!!Et l'appel de ta fonction conversion dois prendre en parametre un double, comme tu l'a bien fais dans la fonction devise()....qui appel correctement cette fonction!!!
Donc je comprends pas où tu bloque....
Non il y a plein d'erreur et devise ne renvoie rien donc doit être de type void et pas int, de plus il y a plein d'erreur au niveau des fonctions.
J'ai refais le code, ce qui donne ceci:
MAIN.C:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "devise.h"
int main (int argc, char *argv[])
{
int choix_menu = 0 ;
do
{
printf ("Choix de votre conversion:\n\n");
printf ("1. ==> Devise\n");
printf ("2. ==> Duree\n");
scanf ("%d", &choix_menu);
switch (choix_menu)
{
case 1 :
devise();
break;
}
} while (choix_menu <1 || choix_menu >6);
return 0;
}
================================================================
DEVISE.C:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
//COULEUR
void Color(int couleurDuTexte,int couleurDeFond) {
HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
}
void devise()
{
int choix=0;
double val_entree=0, val_sortie=0;
do
{
printf ("Choississez votre conversion:...\n\n");
Color (9,0);
printf (" ++++ MENU DEVISE ++++\n\n");
Color (14,0);
printf ("1. EUROS ==> FRANCS");
printf ("\t 2. EUROS ==> LIVRES");
printf ("\t 3. EUROS ==> DOLLARDS\n\n");
printf ("4. DOLLARDS ==> EUROS");
printf ("\t5. LIVRES ==> EUROS");
printf ("\t6. FRANCS ==> EUROS");
Color (15,0);
printf ("\n\n...");
scanf ("%d", &choix);
if (choix == 1)
{
printf ("Valeure à convertir :\n...");
scanf ("%lf", &val_entree);
val_sortie = euros_francs(val_entree);
printf ("%f € = %f FF", val_entree, val_sortie);
}
} while (choix < 1 || choix > 6);
}
double euros_francs(double val_entree)
{
double val_sortie = 0;
val_sortie = 6.55957 * val_entree;
return val_sortie;
}
================================================================
DEVISE.H
double euros_francs(double val_entree);
================================================================
le debugger signal encore 2 erreurs, avec la variable euros_francs notamment mais le code est déjà "plus" correct qu'auparavant.
J'ai refais le code, ce qui donne ceci:
MAIN.C:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "devise.h"
int main (int argc, char *argv[])
{
int choix_menu = 0 ;
do
{
printf ("Choix de votre conversion:\n\n");
printf ("1. ==> Devise\n");
printf ("2. ==> Duree\n");
scanf ("%d", &choix_menu);
switch (choix_menu)
{
case 1 :
devise();
break;
}
} while (choix_menu <1 || choix_menu >6);
return 0;
}
================================================================
DEVISE.C:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
//COULEUR
void Color(int couleurDuTexte,int couleurDeFond) {
HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
}
void devise()
{
int choix=0;
double val_entree=0, val_sortie=0;
do
{
printf ("Choississez votre conversion:...\n\n");
Color (9,0);
printf (" ++++ MENU DEVISE ++++\n\n");
Color (14,0);
printf ("1. EUROS ==> FRANCS");
printf ("\t 2. EUROS ==> LIVRES");
printf ("\t 3. EUROS ==> DOLLARDS\n\n");
printf ("4. DOLLARDS ==> EUROS");
printf ("\t5. LIVRES ==> EUROS");
printf ("\t6. FRANCS ==> EUROS");
Color (15,0);
printf ("\n\n...");
scanf ("%d", &choix);
if (choix == 1)
{
printf ("Valeure à convertir :\n...");
scanf ("%lf", &val_entree);
val_sortie = euros_francs(val_entree);
printf ("%f € = %f FF", val_entree, val_sortie);
}
} while (choix < 1 || choix > 6);
}
double euros_francs(double val_entree)
{
double val_sortie = 0;
val_sortie = 6.55957 * val_entree;
return val_sortie;
}
================================================================
DEVISE.H
double euros_francs(double val_entree);
================================================================
le debugger signal encore 2 erreurs, avec la variable euros_francs notamment mais le code est déjà "plus" correct qu'auparavant.
Salut,
Non il y a plein d'erreur et devise ne renvoie rien
Je me suis juste inspirer du code que tu as posté.....;) car le code que je t'ai precedemment posté tourne correctement....
le debugger signal encore 2 erreurs, avec la variable euros_francs notamment
Sinon, je pense qu'il faut juste que tu "include" le fichier devise.h dans le fichier devise.c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
#include "devise.h"
//COULEUR
void Color(int couleurDuTexte,int couleurDeFond) {
HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
}
void devise()
{
int choix=0;
double val_entree=0, val_sortie=0;
do
{
printf ("Choississez votre conversion:...\n\n");
Color (9,0);
printf (" ++++ MENU DEVISE ++++\n\n");
Color (14,0);
printf ("1. EUROS ==> FRANCS");
printf ("\t 2. EUROS ==> LIVRES");
printf ("\t 3. EUROS ==> DOLLARDS\n\n");
printf ("4. DOLLARDS ==> EUROS");
printf ("\t5. LIVRES ==> EUROS");
printf ("\t6. FRANCS ==> EUROS");
Color (15,0);
printf ("\n\n...");
scanf ("%d", &choix);
if (choix == 1)
{
printf ("Valeure à convertir :\n...");
scanf ("%lf", &val_entree);
val_sortie = euros_francs(val_entree);
printf ("%f € = %f FF", val_entree, val_sortie);
}
} while (choix < 1 || choix > 6);
}
double euros_francs(double val_entree)
{
double val_sortie = 0;
val_sortie = 6.55957 * val_entree;
return val_sortie;
}
================================================================
DEVISE.H
double euros_francs(double val_entree);
void devise() ;
================================================================
Non il y a plein d'erreur et devise ne renvoie rien
Je me suis juste inspirer du code que tu as posté.....;) car le code que je t'ai precedemment posté tourne correctement....
le debugger signal encore 2 erreurs, avec la variable euros_francs notamment
Sinon, je pense qu'il faut juste que tu "include" le fichier devise.h dans le fichier devise.c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
#include "devise.h"
//COULEUR
void Color(int couleurDuTexte,int couleurDeFond) {
HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
}
void devise()
{
int choix=0;
double val_entree=0, val_sortie=0;
do
{
printf ("Choississez votre conversion:...\n\n");
Color (9,0);
printf (" ++++ MENU DEVISE ++++\n\n");
Color (14,0);
printf ("1. EUROS ==> FRANCS");
printf ("\t 2. EUROS ==> LIVRES");
printf ("\t 3. EUROS ==> DOLLARDS\n\n");
printf ("4. DOLLARDS ==> EUROS");
printf ("\t5. LIVRES ==> EUROS");
printf ("\t6. FRANCS ==> EUROS");
Color (15,0);
printf ("\n\n...");
scanf ("%d", &choix);
if (choix == 1)
{
printf ("Valeure à convertir :\n...");
scanf ("%lf", &val_entree);
val_sortie = euros_francs(val_entree);
printf ("%f € = %f FF", val_entree, val_sortie);
}
} while (choix < 1 || choix > 6);
}
double euros_francs(double val_entree)
{
double val_sortie = 0;
val_sortie = 6.55957 * val_entree;
return val_sortie;
}
================================================================
DEVISE.H
double euros_francs(double val_entree);
void devise() ;
================================================================