Probleme programation C98
kurse
Messages postés
45
Statut
Membre
-
Nxl Messages postés 1257 Statut Membre -
Nxl Messages postés 1257 Statut Membre -
Bonjours
j'ai un problème sur un exercice de programmation en C 98 sur console :
je doit écrire une programme qui lit une opération entré au clavier et affiche le résultat en console.
1) on me demande de crée une fonction question qui demande a l'utilisateur 2 nombre A et B et un opérateur (/,*,-,+). c'est trois paramètre doivent être retourné par la fonction.
............................................................
void question()
{
int A=0 , B=0 ;
char OP[5];
printf("Entre un operateur...");
scanf("%s", OP);
printf("Entré nombre A...");
scanf("%d/n", &A);
printf("Entré nombre B...");
scanf("%d/n", &B);
int *a= &A ,*b= &B;
char *op=&OP
}
.................................................................
ici j'ai deja un problème . Pour retourné les trois paramètre j'ai utilisé des pointeurs mais je n arrive pas a crée un pointeur pour char *op=&OP lors de la compilation j'ai une erreur .
2)on me demande de créer une fonction calcul qui en fonction du paramètre en très dans question en OP exécute les opération . je pense avoir un code correcte pour cette question .
..................................................
double calcul(int *a , int *b , char *op)
{
switch (*op)
{
case '/':
printf("%d%s%d=%d", *a,*op,*b,*a/*b);
break;
case '*':
printf("%d%s%d=%d",*a,*op,*b,*a**b);
break;
case '+':
printf("%d%s%d=%d", *a,*op,*b,*a+*b);
break;
case '-':
printf("%d%s%d=%d", *a,*op,*b,*a-*b);
break;
default:
printf("operation innconnue : operateur");
break;
}
................................................................
Ici ma fonction recoit les pointeur et modifie directement .
3)je doit écrire la fonction pricipale qui appelle les différentes fonction ... je n'y arrive pas ^^
Voila c'est tout soyer indulgent j'apprends tout seul .
N'hestité pas a me dire si mon code est complètement faux.
Merci
j'ai un problème sur un exercice de programmation en C 98 sur console :
je doit écrire une programme qui lit une opération entré au clavier et affiche le résultat en console.
1) on me demande de crée une fonction question qui demande a l'utilisateur 2 nombre A et B et un opérateur (/,*,-,+). c'est trois paramètre doivent être retourné par la fonction.
............................................................
void question()
{
int A=0 , B=0 ;
char OP[5];
printf("Entre un operateur...");
scanf("%s", OP);
printf("Entré nombre A...");
scanf("%d/n", &A);
printf("Entré nombre B...");
scanf("%d/n", &B);
int *a= &A ,*b= &B;
char *op=&OP
}
.................................................................
ici j'ai deja un problème . Pour retourné les trois paramètre j'ai utilisé des pointeurs mais je n arrive pas a crée un pointeur pour char *op=&OP lors de la compilation j'ai une erreur .
2)on me demande de créer une fonction calcul qui en fonction du paramètre en très dans question en OP exécute les opération . je pense avoir un code correcte pour cette question .
..................................................
double calcul(int *a , int *b , char *op)
{
switch (*op)
{
case '/':
printf("%d%s%d=%d", *a,*op,*b,*a/*b);
break;
case '*':
printf("%d%s%d=%d",*a,*op,*b,*a**b);
break;
case '+':
printf("%d%s%d=%d", *a,*op,*b,*a+*b);
break;
case '-':
printf("%d%s%d=%d", *a,*op,*b,*a-*b);
break;
default:
printf("operation innconnue : operateur");
break;
}
................................................................
Ici ma fonction recoit les pointeur et modifie directement .
3)je doit écrire la fonction pricipale qui appelle les différentes fonction ... je n'y arrive pas ^^
Voila c'est tout soyer indulgent j'apprends tout seul .
N'hestité pas a me dire si mon code est complètement faux.
Merci
A voir également:
- Probleme programation C98
- Programation - Forum Études / Formation High-Tech
- Casio et la programation ✓ - Forum Autres périphériques et appareils
- Problème programation automate TSX 07 Nano ✓ - Forum Programmation
- Programation dune télécommande RCA - Forum Programmation
- Programation lecteur code barre - Forum Programmation
2 réponses
Bonsoir,
En C98 ?? Ne s'agirait-il pas plutôt de C89 ou C99 ?
1/Je te conseille plutôt d'utiliser char ope.
Et donc : scanf("%c",&op) ou encore mieux : op=getchar();
Ensuite, il faut vider le buffer clavier. Dans un premier temps, tu peux mettre simplement getchar(). De plus, il ne faut pas mettre de \n (et non /n) dans le scanf.
Ta fonction question doit retourner les éléments (je te conseille d'utiliser une structure). Donc le prototype devrait être OP question(void).
Ce qui donne :
Note : évite de mettre les déclarations de variable en milieu de bloc.
2/ Je te laisse refaire en utilisant le prototype : double calcul (OP ope);
Pour info : printf("%d%s%d=%d", *a,*op,*b,*a/*b); Si tu mets %s, tu ne peux pas mettre *op, mais op car *op est un char (et non char*).
Si tu mets double calcul(...), il ne faut pas oublier de mettre un return ...
Et pas besoin de mettre de printf dans ta fonction calcul. C'est plus propre (à moins que l'exo stipule le contraire) de simplement calculer et de faire l'affichage dans une autre fonction (ici dans la fonction principal).
3/
Cela serait du genre :
Et enfin, la prochaine fois que tu postes un code, n'oublie pas d'utiliser les balises "code" (à droite du bouton sougliner).
Cordialement,
Google is your friend
En C98 ?? Ne s'agirait-il pas plutôt de C89 ou C99 ?
1/Je te conseille plutôt d'utiliser char ope.
Et donc : scanf("%c",&op) ou encore mieux : op=getchar();
Ensuite, il faut vider le buffer clavier. Dans un premier temps, tu peux mettre simplement getchar(). De plus, il ne faut pas mettre de \n (et non /n) dans le scanf.
Ta fonction question doit retourner les éléments (je te conseille d'utiliser une structure). Donc le prototype devrait être OP question(void).
Ce qui donne :
typedef struct {
int A;
int B;
char ope;
} OP;
OP question(void)
{
OP ope;
printf("Entre un operateur...");
ope.ope=getchar();
getchar();
printf("Entré nombre A...");
scanf("%d", &ope.A);
printf("Entré nombre B...");
scanf("%d", &ope.B);
return ope;
}
Note : évite de mettre les déclarations de variable en milieu de bloc.
2/ Je te laisse refaire en utilisant le prototype : double calcul (OP ope);
Pour info : printf("%d%s%d=%d", *a,*op,*b,*a/*b); Si tu mets %s, tu ne peux pas mettre *op, mais op car *op est un char (et non char*).
Si tu mets double calcul(...), il ne faut pas oublier de mettre un return ...
Et pas besoin de mettre de printf dans ta fonction calcul. C'est plus propre (à moins que l'exo stipule le contraire) de simplement calculer et de faire l'affichage dans une autre fonction (ici dans la fonction principal).
3/
Cela serait du genre :
int main(void) {
OP ope;
double resultat;
ope=question();
resultat=calcul(ope);
printf("%d %c %d = %f\n", ope.A, ope.ope, op.B, resultat);
return 0;
}
Et enfin, la prochaine fois que tu postes un code, n'oublie pas d'utiliser les balises "code" (à droite du bouton sougliner).
Cordialement,
Google is your friend