Je ne peux pas comprendre comment sauter les commutateurs inutiles.
Si essayé de remplacer continue avec des pauses et si d'autres instructions qui seraient malheureusement simplement l'arrêtez au premier numéro au lieu de sauter des commutateurs. P>
if ( number > 0 && number < 10000 ) {
switch ( thou_place ) {
case ( 0 ):
printf("zero ");
break;
case ( 1 ):
printf("one ");
break;
case ( 2 ):
printf ("two ");
break;
case ( 3 ):
printf ("three ");
break;
case ( 4 ):
printf ("four ");
break;
case ( 5 ):
printf ("five ");
break;
case ( 6 ):
printf("six ");
break;
case ( 7 ):
printf ("seven ");
break;
case ( 8 ):
printf ("eight ");
break;
case ( 9 ):
printf ("nine ");
break;
}
switch ( hun_place ) {
case ( 0 ):
printf("zero ");
break;
case ( 1 ):
printf("one ");
break;
case ( 2 ):
printf ("two ");
break;
case ( 3 ):
printf ("three ");
break;
case ( 4 ):
printf ("four ");
break;
case ( 5 ):
printf ("five ");
break;
case ( 6 ):
printf("six ");
break;
case ( 7 ):
printf ("seven ");
break;
case ( 8 ):
printf ("eight ");
break;
case ( 9 ):
printf ("nine ");
break;
}
switch ( ten_place ) {
case ( 0 ):
printf("zero ");
break;
case ( 1 ):
printf("one ");
break;
case ( 2 ):
printf ("two ");
break;
case ( 3 ):
printf ("three ");
break;
case ( 4 ):
printf ("four ");
break;
case ( 5 ):
printf ("five ");
break;
case ( 6 ):
printf("six ");
break;
case ( 7 ):
printf ("seven ");
break;
case ( 8 ):
printf ("eight ");
break;
case ( 9 ):
printf ("nine ");
break;
}
4 Réponses :
Le problème est dans votre logique. Par exemple, vous devez imprimer "zéro" en milliers de personnes uniquement si le nombre lui-même est supérieur à 1000.
solution simple pour cela dans Case 0 code>: P> switch(thou_place) {
case ( 0 ):
if(number > 1000)
printf("zero ");
break;
...
}
Conceptuellement, ce dont vous avez besoin est le programme de sortie un mot au lieu du Le pseudo-code va: p> Pour améliorer la clarté, vous pouvez même créer votre Ceci résout votre problème; La mise en œuvre de C réelle est laissée comme un exercice. p> p> pour code> chaque chiffre de la représentation décimale du nombre. Notez la réplication que vous avez dans votre code? Vous devriez Ne pas répéter vous-même et le langage C (avec la plupart des autres) fournit une construction faire juste que: des boucles. si (numéro> 0 && numéro <10000) code>, vous pouvez faire une boucle (qui fait également un chèque) et, pour chaque étape ( IE em> dans le corps de la boucle), utilisez votre interrupteur code>. p> commutateur code> une fonction. En outre, pour en apprendre davantage (c'est un peu plus avancé), vous pouvez envisager d'utiliser un char * ** digit_words code> vous permettant de remplacer l'ensemble du commutateur code> code> avec un printf ("% s", chiffre_words [chiffre]) code> (mais faites attention à la vérification de la plage!). p>
Pourquoi toutes les réponses à cette question sont-elles décrites?
@picto déjà mentionné le principe sec.
Je suggérerais une solution différente pour le problème global: p> entrée : procédure: h3>
-1234567890 code> p>
if (number > 0 && number < 10000)
{
switch (thou_place)
{
case (1) :
printf("one ");
break;
case (2) :
printf("two ");
break;
case (3) :
printf("three ");
break;
case (4) :
printf("four ");
break;
case (5) :
printf("five ");
break;
case (6) :
printf("six ");
break;
case (7) :
printf("seven ");
break;
case (8) :
printf("eight ");
break;
case (9) :
printf("nine ");
break;
}
switch (hun_place)
{
case (0) :
if (thou_place != 0)
printf("zero ");
break;
case (1) :
printf("one ");
break;
case (2) :
printf("two ");
break;
case (3) :
printf("three ");
break;
case (4) :
printf("four ");
break;
case (5) :
printf("five ");
break;
case (6) :
printf("six ");
break;
case (7) :
printf("seven ");
break;
case (8) :
printf("eight ");
break;
case (9) :
printf("nine ");
break;
}
switch (ten_place)
{
case (0) :
{
if ((thou_place == 0) && (hun_place == 0)) {
}
else if (thou_place == 0 && hun_place != 0){
printf("zero ");
break;
}
else {
printf("zero ");
break;
}
}
case (1) :
printf("one ");
break;
case (2) :
printf("two ");
break;
case (3) :
printf("three ");
break;
case (4) :
printf("four ");
break;
case (5) :
printf("five ");
break;
case (6) :
printf("six ");
break;
case (7) :
printf("seven ");
break;
case (8) :
printf("eight ");
break;
case (9) :
printf("nine ");
break;
}
}
Pourriez-vous expliquer ce que vous avez changé dans le code et pourquoi résout-il le problème?
Pouvez-vous dire s'il vous plaît comment avez-vous initialisé
thou_place code>,hun_place code> etten_place code>.