begin process at 2012 02 11 23:24:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Divers

 > 

switch ne veut pas reconnaitre une variable float


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

switch ne veut pas reconnaitre une variable float

vendredi 20 juillet 2007 à 04:12:24 | switch ne veut pas reconnaitre une variable float

S_M_E

mon compilateur me dit que ma variable dollar de type float ne peu etre quantifié par mon switch:

 main()

      char c,b;
      int transfer;
      float dollar,euro;
      long test1,test2,test3;
     
         
      printf(" €URODOLLAR$\n");
      b=getchar();
      printf(" appuyer sur une touche...\n");
     
      getchar();
      clrscr();
      printf("\n");
                 
      printf("entrez la valeur du dollar pour 1 euro\t");
      scanf("%f",&dollar);
     
     
      printf("\n");
      printf(" la valeur du dollar est :\t %f\n", dollar);
    
      switch (dollar)
      {
      case (dollar==0)
               
       printf("\n");
       c=getchar();          
      printf("division par zéro interdite. Sortie du programme.\n");
      test2=0;
      test3=0;
      printf("\n l'indicateur est %d %d %d ",test1,test2,test3);
      transfer=100;
      getchar();
      break;
     
     
      case (dollar!=euro)
     
        test2=(dollar!=euro);              
       printf("\n");
       c=getchar();               
      printf(" la valeur du dollar est bien differente de l'euro (1=OUI  0=NON)?\t %d\n",euro!=dollar);
      test1=0;
      test3=0;
      euro=1/dollar;
      printf("la valeur de l'euro pour $%f est %f€\n",dollar,euro);
      printf("\n l'indicateur est  %d %d %d",test1,test2,test3);
      transfer=010;
      printf("\n %d",transfer);
      getchar();
      break;
     
     
     
      case (dollar==euro)
     
         
          printf("le calcule est inutile!!!!");
          test2=0;
          test1=0;
          printf("l'indicateur est %d %d %d",test1,test2,test3);
          transfer=001;
          c=getchar();
          getchar();
          break;
         
     }
     
     
      printf("\n");
      printf("  donc pour $1 on a %f €",euro);
     
      printf("\n");
      c=getchar();
      printf(" appuyer sur une touche...");
     
      getchar();
      clrscr();
      c=getchar();
      printf(" appuyer sur une touche...");
     
      getchar();
     
      clrscr();
      printf("indicateur transferer: %d     
      return 0;
     
     
}

le test switch ne marche que pour les variables de type integer???

vendredi 20 juillet 2007 à 05:26:28 | Re : switch ne veut pas reconnaitre une variable float

SAKingdom

Membre Club
1. Non switch ne prend pas de float

2. case (dollar==euro) ???? Ça compile ça ? Tu sais comment fonctionne un switch ?

Exemple:
switch (x) {
    case 1:
       printf("x=1");
       break;
    case 2:
       printf("x=2");
       break;

    default: printf("x=?");
}

Ceci test si x égal 1 ou 2. Si oui, il affiche le message en conséquence. Sinon, il affiche x=?.
Important à retenir, les valeurs que prennent les case doivent être constantes. Pas de variable.

Exemple:
int i = 1;
switch(i) {
    case 1:
    case 2:
    ...
}
OK

int i = 1, j= 3;
switch(i) {
    case j:
    ... 
}
j N'EST PAS CONSTANT
NE FONCTIONNE PAS


C++ (@++)

dimanche 22 juillet 2007 à 11:31:43 | Re : switch ne veut pas reconnaitre une variable float

ShareVB

salut,

concernant le switch : effectivement l'expression après le case doit être une CONSTANTE...et pour le cas "tout le reste" tu as default...ensuite, case (dollar == 0) n'a pas de sens puisque le switch est déjà sur dollar...

enfin, switch ne peut pas prendre les float car l'egalité n'existe pas avec les float...en effet, un float est un arrondi donc 0 = 0 n'est pas forcément vrai parce que 0.0000001 != -0.0000001 pourtant ca vaut à peut près 0...le test d'égalit entre float se fait par fabs(float1 - float2) < seuil (où seuil est par exemple, 0.0001)

ShareVB


Cette discussion est classée dans : printf, getchar, dollar, euro, test2


Répondre à ce message

Sujets en rapport avec ce message

effacer l'ecran pour afficher d'autre texte... [ par S_M_E ] voici mon programme, j'essaye d'effacer l'écran en utilisant cls ou system("cls") mais que DALE, apparement je n'utilise pas la bonne librairie laquel Problême avec Getchar... [ par Kolibot ] Je débute en C et je suis tombé sur un problême... : #include #include int main (){int a,b,d;a = 0; b = 0;printf ("Calculatrice : \n\n");printf ("Vale printf et getchar() [ par atupac1 ] voici mon code:printf ("Ary.Nr.:%8d  \n",arynr);getchar();Ma question est : Aprés avoir affiché quelque chose à l'ecran avec printf, si je fais un get instruction if qui ne veut pas passer !!!!!! [ par superbaloo78 ] voila j'ai un code qui ressemble a ca !!!!int test1;int test2;void main(void){ printf("entrer test1(1 ou 0)"); while((test1 = getchar()) != '\n' Debutant petit exercice à finir... [ par Rbot ] J'avais comme sujet :Soit un vecteur nommé VECT comportant N valeurs de type entier(Remarque : utiliser la directive #define).Ecrire un programme qui, COMMENT FAIRE UN PETIT MENU EN C [ par geogram22 ] Salut à tous,Commencant à programmer en C g un véritable petit problème pour créer qqch de tous simple pour certains [: p] et que g véritablement bes gestion des event avec WSANETWORKEVENTS [ par Spiffou ] bonjour à tous,je voudrais votre avis sur la gestion des evenements sur les sockets.je réalise une application (un jeu) qui doit communiquer sur un ré Comment fonctionne la fonction getchar() [ par themagaly ] Je voudrait utiliser la fonction getchar pour lire une phrase et je souhaiterai savoir comment elle fonctionne. affichage de caractere dans une grille [ par anzelus ] bonjour, voila, je suis un debutant en c, je dois faire un programme qui affiche une grille de points sur console, apres afficher un caractere special getchar sans pause (keypress) c/c++ sous linux PLZ!! [ par davidauche ] Bonjour tt monde,apres des jours de recherches j'arrive pas a resoudre un probleme clee pour un projet, j'espere que vous allez m'aider un peu et merc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales