Problème en C

Fermé
mskhotlwalidin - 23 déc. 2010 à 18:17
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 23 déc. 2010 à 21:30
Bonjour,
j'ai crée ce petit programme avec Geany sur ubuntu 10.10 à jour
#include<stdio.h>
void main()
{
	int a,b;char c;
	scanf("%d%c%d",&a,&c,&b);
	switch(c)
	{
		case '+':
		printf("%d",a+b);break;
		case '*':
		printf("%d",a*b);break;
		case '/':
		printf("%d",a/b);break;
		case '-':
		printf("%d",a-b);break;
	}
}


sauf qu'il ne marche pas
j'ai pas testé sur Windows, mais je ne sais pas si ça passe ou pas..
Merci pour vos futures explications


3 réponses

loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
23 déc. 2010 à 18:27
Oh si cela doit fonctionner, mais (et oui il y a un mais !) il ne faut pas mettre d'espace dans la saisie.
Par exemple: 2+3suivi immédiatement de la touche 'enter'.
Bonne continuation.
0
sayce Messages postés 1630 Date d'inscription jeudi 19 mars 2009 Statut Contributeur sécurité Dernière intervention 31 août 2011 270
23 déc. 2010 à 21:19
Coucou,

Tu cherches à faire quoi avec ton programme ?
¤♣®Sayc£®♣¤
La connerie n'a pas de frontière, c'est pour ça que tous les hommes sont frères.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
23 déc. 2010 à 21:30
Bonjour,

Si ce code fonctionne, à condition de ne pas mettre d'espaces avant l'opérateur. Par exemple 5+ 3 marchera mais pas 5 +2

Pour corriger, tu peux mettre : scanf("%d %c%d",&a,&c,&b);

N'oublie pas de mettre de forcer l'affichage de tes printf. Par exemple avec un fflush(stdout); avant l'accolade final.
Ou tout simplement, tu affiches un saut de ligne après tes printf.

Pour info, le prototype de main n'est pas void main() mais : int main(void) et il faut mettre return 0; à la fin pour dire que le programme s'est bien déroulé.

Cdlt,
0