Problème de programation C

Paul_Le_Brave Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, j'ai un petit problème en C, j'ai taper un code dont il y a un extrait tout en bas.
Et il me signal un erreur avant les deux premier "else if" mais je ne la trouve pas aidez-moi s'il vous plait !!!


if(niveau == 1)
const int MAX = 10, MIN = 1;//choix du niveau1
else if(niveau == 2)
const int MAX = 100, MIN = 1;//choix du niveau2
else if(niveau == 3)
const int MAX = 1000, MIN = 1;//choix du niveau3
else if(niveau == 4)
const int MAX = 10000, MIN = 1;//choix du niveau4
else if(niveau == 5)
const int MAX = 100000, MIN = 1;//choix du niveau5
else if(niveau == 6)
const int MAX = 1000000, MIN = 1;//choix du niveau6
else if(niveau == 7)
const int MAX = 10000000, MIN = 1;//choix du niveau7
else if(niveau == 8)
const int MAX = 100000000, MIN = 1;//choix du niveau8
else if(niveau == 9)
const int MAX = 1000000000, MIN = 1;//choix du niveau9
else
const int MAX = 10000000000, MIN = 1;//choix du niveau10

5 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Tu définis plusieurs fois ta variable. D'où le problème.
int max,min;
switch(niveau) {
   case 1:
       max=10;
       min=1;
       break;
   case 2:
     etc...
}

Ou alors, tu peux constater que max=10 puissance niveau et min vaut toujours 1.
Donc, une simple petite boucle for (ou pow). Et en plus tu pourras avoir une constante.
Ou alors tu peux utiliser un tableau des valeurs de max s'il n'existe pas de relation entre le niveau et la valeur de max.
0
Profil bloqué
 
Déja,je te conseille de faire virer ton bloc imbriqué de if et else en un bloc switch ,cela
évitera ces genres d'erreurs.
0
Paul_Le_Brave Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   4
 
Ok mais comment tu le ferai toi la boucle for ???
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Voici un exemple de programme :
#include <stdio.h>

static int puissance(const int base, int exp) {
    int res=1;
    while(exp--) res*=base;
    return res;
}

static int val_max(const int niveau) {
    return puissance(10,niveau<9?niveau:9);
}

int main(void) {
    const int min=1;
    const int max=val_max(5);

    printf("min=%d, max=%d\n",min,max);
    return 0;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Paul_Le_Brave Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   4
 
ok merci je test !
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
D'ailleurs, dans mon exemple je me suis arrêté au niveau 9 au lieu 10 comme t'as fait. Donc le nombre maximum sera 10 puissance 9 dans mon exemple. Pour que ce soit 10 puissance 10 il faudra utiliser le type long long int. Et la fonction renverrait : return puissance(10,niveau<10?niveau:10);

Cdlt
0