Progtwig de C simple para convertir dos dígitos en palabras

Lo que estoy tratando de hacer es escribir un progtwig donde ingresas dos dígitos y luego se convierten en palabras que se imprimen. El problema es que este progtwig se cuelga después de que ingresas los dos dígitos y no tengo idea de por qué. Cualquier ayuda es apreciada. Soy un principiante y todo lo que puedo usar para resolver esto es básicamente si y cambio. Gracias de nuevo.

#include  int main (void) { int firstNum, secondNum; printf("Enter a two digit number: "); scanf("%d%d", &firstNum,&secondNum); if (firstNum == 1 && secondNum == 0){ printf("You entered the number ten\n");} if (firstNum == 1 && secondNum == 1){ printf("You entered the number eleven\n");} if (firstNum == 1 && secondNum == 2){ printf("You entered the number twelve\n");} if (firstNum == 1 && secondNum == 3){ printf("You entered the number thirteen\n");} if (firstNum == 1 && secondNum == 4){ printf("You entered the number forteen\n");} if (firstNum == 1 && secondNum == 5){ printf("You entered the number fifteen\n");} if (firstNum == 1 && secondNum == 6){ printf("You entered the number sixteen\n");} if (firstNum == 1 && secondNum == 7){ printf("You entered the number seventeen\n");} if (firstNum == 1 && secondNum == 8){ printf("You entered the number eighteen\n");} if (firstNum == 1 && secondNum == 9){ printf("You entered the number nineteen\n");} switch(firstNum){ case 2: printf("You entered the number twenty-");break; case 3: printf("You entered the number thirty-");break; case 4: printf("You entered the number forty-");break; case 5: printf("You entered the number fifty-");break; case 6: printf("You entered the number sixty-");break; case 7: printf("You entered the number seventy-");break; case 8: printf("You entered the number eighty-");break; case 9: printf("You entered the number ninty-");break; } switch (secondNum){ case 1: printf("one.\n");break; case 2: printf("two.\n");break; case 3: printf("three.\n");break; case 4: printf("four.\n");break; case 5: printf("five.\n");break; case 6: printf("six.\n");break; } return 0; } 

Su progtwig se “cuelga” porque está esperando un segundo número.

En lugar de 4 2 ENTER , escriba 4 2 f o o ENTER .


Necesita verificar el valor de retorno de scanf()

 if (scanf("%d%d", &firstNum, &secondNum) != 2) { fprintf(stderr, "Oops, the scanf didn't read 2 numbers.\n"); } else { /* continue with program */ /* you might as well see what scanf got from the input */ printf("scanf got the values %d and %d.\n", firstNum, secondNum); } 

Un código muy simple (Especialmente para principiantes).

 #include  #include  int main() { int num,n,r; printf("Enter a two-digit number: "); scanf("%d",&num); n = num/10; r = num%10; switch(n) { case 1: switch(r) { case 0: printf("Ten"); break; case 1: printf("Eleven"); break; case 2: printf("Twelve"); break; case 3: printf("Thirteen"); break; case 4: printf("Fourteen"); break; case 5: printf("Fifteen"); break; case 6: printf("Sixteen"); break; case 7: printf("Seventeen"); break; case 8: printf("Eighteen"); break; case 9: printf("Nineteen"); } break; case 2: printf("Twenty-"); break; case 3: printf("Thirty-"); break; case 4: printf("Fourty-"); break; case 5: printf("Fifty-"); break; case 6: printf("Sixty-"); break; case 7: printf("Seventy-"); break; case 8: printf("Eighty-"); break; case 9: printf("Ninety-"); break; } if(n != 1) { switch(r) { 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; default: ; } } getch(); } 

Su progtwig lee los datos de la consola y la consola está en modo “cocinado”. En este modo, la consola recostack la entrada y permite al usuario editarla. Los datos se envían al progtwig después de presionar Retorno o Intro .

El modo que desea es el modo “raw”. Existen varias formas de ingresar al modo raw, pero eso depende de su sistema operativo.

La solución rápida es ingresar los dos dígitos y presionar Retorno