Question de débutant de chez débutant (en C)

Fermé
Pirure - 2 oct. 2004 à 12:25
 Matt - 6 oct. 2004 à 13:50
Voila, un exercice pour l'école, faut entrer deux nombres, un signe ( + - * / ) et le pgm doit sortir la réponse sous forme "4+5 = 9"
et ici, problème, je pige pas, une heure que j'suis dessus sans trouver la solution..


#include <stdio.h>
#include <conio.h>

void main(void)
{
	int N1, N2, P;
	char op;
	printf("Veuillez introduire un premier nombre : ");
	scanf("%d", &N1);
	printf("Veuillez introduire un premier nombre : ");
	scanf("%d", &N2);
	printf("Veuillez introduire le signe de l'operation : ");
	scanf("\n%c", &op);
	if (op = '+' )
		printf("%d + %d = %d", N1, N2, P=N1+N2); 
	if (op = '-' )
		printf("%d - %d = %d",N1, N2, P=N1-N2); 
	if (op = '*' )
		printf("%d * %d = %d",N1, N2, P=N1*N2);
	if (op = '/' )
		printf("%d / %d = %d",N1, N2, P=N1/N2);
	else printf("Lol, trompay :p");

    getch();
}

3 réponses

Salut!

La récente norme (1999) iso 9899 (standard C) OBLIGE de retourner une valeur int pour la fonction main. Un compilateur C90 acceptera void mais certainement pas un compilateur C99 strict. Evite à tout prix <conio.h> qui ne fait pas parti du standard C mais de Borland C++.

/* ma solution */

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int n1;
int n2;
char operator;

printf("OPERATION:\n\n a operator b = c\n\n");
printf("a = ");
scanf("%i", &n1);
printf("b = ");
scanf("%i", &n2);
printf("operator = ");
scanf("%c", &operator);
switch(operator)
{
case '+':
{
printf("%i + %i = %i\n", n1, n2, n1 + n2);
break;
}
case '-':
{
printf("%i - %i = %i\n", n1, n2, n1 - n2);
break;
}
case '*';
{
printf("%i * %i = %i\n", n1, n2, n1 * n2);
break;
}
case '/':
{
printf("%i / %i = %i\n", n1, n2, n1 / n2);
break;
}
default:
{
printf("unknow operator\n");
}
}
return EXIT_SUCCESS;
}

N'oublie pas de mettre des {}.

Pour les anglophones:

http://rm-f.net/standards/
0
Salut
j'ai pas lu entierement ton code de facon a le comprendre
donc je sais pas s'il est bon ou pas mais,

tu écrit :

if (op = '+' )
		printf("%d + %d = %d", N1, N2, P=N1+N2); 
if (op = '-' )
		printf("%d - %d = %d",N1, N2, P=N1-N2); 
if (op = '*' )
		printf("%d * %d = %d",N1, N2, P=N1*N2);
if (op = '/' )
		printf("%d / %d = %d",N1, N2, P=N1/N2);


en language C on fait comme ca

if (op == '/' )	printf("%d / %d = %d",N1, N2, P=N1/N2);


l'operateur utilisé pour un test est '==' et non le '=' de l'affectation...
0
Il a utilisé un "case" donc pas besoin de mettre de =.
Un petit conseil prefere le case au if dans ton cas (c'est pour cela d'ailleur que guki l'a choisi!!!).
0