Rechercher : dans
Par :

Positif ou negatif ou nul en switch !

Dernière réponse le 9 nov 2009 à 22:08:23 dr hisoka, le 8 nov 2009 à 16:18:47 
 Signaler ce message aux modérateurs

Bonjour,
j'ai fait un code source qui teste si le nombre est négative ou positif ou nul mais le prob s'arrte au niveau de compilation voici le code source :

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


void main(void)
{
float nbr,b=0;
printf("entrer votre nombre : ");
scanf("%f",&nbr);

switch(nbr)
{
case (nbr<b) :

printf(''negatif'');
break;

case (nbr>b) :

printf("positif");
break;

default :

printf("nul");
}
getch();
}


ou est le prob ??????????? merci d'avance

Configuration: Windows XP
Safari 532.0

Meilleures réponses pour « positif ou negatif ou nul en switch ! » dans :
Qu'est ce qu'un switch ? VoirQu'est ce qu'un switch ? Définition Principe de fonctionnement La commutation Création de la table d'adresse MAC Pour aller plus loin Descendant du HUB, le switch, ou commutateur en français, est présent dans l'ensemble des...
Télécharger Mobile Net Switch VoirSi vous utilisez le même ordinateur à la maison, au bureau et en déplacement et que vous devez vous connecter à diverses connexions réseau, munissez vous de cet outil. Mobile Net Switch est un gestionnaire de connexion Internet. En effet, à chaque...
Equipements réseau - Le commutateur (switch) VoirCommutateur Un commutateur (en anglais switch) est un pont multiports, c'est-à-dire qu'il s'agit d'un élément actif agissant au niveau 2 du modèle OSI. Le commutateur analyse les trames arrivant sur ses ports d'entrée et filtre les données...

1

dr hisoka, le 8 nov 2009 à 16:29:00

Aidez moi svppp

Répondre à dr hisoka

2

Pacorabanix, le 8 nov 2009 à 16:33:25

Tu ne peux pas faire de switch avec des ">" ou comme ça.

Tu ne peux faire switch que sur des égalités avec des nombres.

Ici il faut faire plutot avec des if else.

Répondre à Pacorabanix

3

dr hisoka, le 8 nov 2009 à 16:48:21

Je sai PACO mais le prof ns demande de la faire avec switch ........ !!!??? quoi je fasse maint ??

Répondre à dr hisoka

4

dr hisoka, le 8 nov 2009 à 16:57:04

Aidez moi svppp c urgent j'en ai besoin .... je sai cmm le faire avec if et else mais le prof vx qu'ont le fasse avec switch

Répondre à dr hisoka

5

flokka, le 8 nov 2009 à 17:16:55

Bonjour;tt
je te propose une idéé
esssyer de:
y= nbr*1;
x=nbr+ abs(nbr);
case(y==0)
print("null");
break;

case(x==0)
print(" nbr est negatif");
break;
case (x==2*nbr)
print("positif);
break;

jé oublyer un peu la suntaxe mé j'espere que tu comprend lidéé!!merçi

Répondre à flokka

6

dr hisoka, le 8 nov 2009 à 18:06:55

Tres b1 et merci bccppp jusqu'à l'infini lol flokaa j'ai compris ce que tu vx dire je vais le tapé e te revoir avec le résultat ;-)

Répondre à dr hisoka

7

Pacorabanix, le 8 nov 2009 à 18:31:33

Euhhh.... l'idée est à peu près là mais ce qui est proposé est plutot incomplet...

Idée :

1)arrondir le nombre en un entier
2) faire un "modulo" pour se ramener à un petit nombre.

Répondre à Pacorabanix

9

loupius, le 8 nov 2009 à 18:35:57

Non, ça ne peut pas passer la compilation.
En 'C', dans le 'case' on ne peut mettre que des constantes entières qui doivent pouvoir être calculées au moment de la compilation sinon c'est refusé.
Personnellement, je ne vois pas de solution satisfaisante.
Bonne continuation.

Répondre à loupius

8

flokka, le 8 nov 2009 à 18:35:14

A votre service ma cherie
sa fé longtemp jé pa programer avec C commem!!!!!!!!!!!!

Répondre à flokka

10

Pacorabanix, le 8 nov 2009 à 18:36:56

à vrai dire je ne comprends pas ce que tu proposes là :

y= nbr*1;
x=nbr+ abs(nbr);

qu'est ce que ce code est censé faire ?

Répondre à Pacorabanix

11

dubcek, le 9 nov 2009 à 12:45:04

Hello
tu peux utiliser
switch((int)(nbr/fabs(nbr)))
vaut 1 si nbr est > 0, -1 si nbr est < 0 sinon nbr = 0

Répondre à dubcek

12

loupius, le 9 nov 2009 à 15:21:03

Très dangereux si 'nbre' vaut zéro. Il vaudrait mieux faire un test avant.
Bonne continuation.

Répondre à loupius

13

dubcek, le 9 nov 2009 à 15:24:46

Oui, mais si il n'y a pas d'erreur le résultat n'est ni 1 ni -1, ça peut suffire pour le default du switch

Répondre à dubcek

14

loupius, le 9 nov 2009 à 16:24:29

Je ne parlais pas du résultat du 'switch' mais de la division par zéro, et ça pose toujours un problème !

Répondre à loupius

15

Pacorabanix, le 9 nov 2009 à 21:40:54

En virgule flottante non (ça donne -Inf ou +Inf selon si on fait -5.0/0.0 ou 5.0/0.0 par exemple, et NaN (Not a Number) si on fait 0.0/0.0) pour le standard IEEE, et donc pour C++ qui l'utilise. Le -Inf et le +Inf sont bien considérés comme plus petits que 0 et plus grand que 0 respectivement.

Bref, avec les flottants ça ne pose pas d'erreur à l'exécution.

Répondre à Pacorabanix

16

 loupius, le 9 nov 2009 à 22:08:23

Effectivement, je n'ai pas fait attention.
Bonne soirée.

Répondre à loupius
Collection CommentÇaMarche.net