簡體   English   中英

將兩位數轉換成單詞的簡單C程序

[英]Simple C Program To Convert Two Digits Into Words

我要做的是編寫一個程序,其中您輸入兩個數字,然后將它們轉換為打印的單詞。 問題是這個程序在輸入兩位數后掛起,我不明白為什么。 任何和所有的幫助表示贊賞。 我是初學者,所有我可以用來解決這個問題基本上是if和switch。 再次感謝。

#include <stdio.h>

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;
}

您的程序“掛起”,因為它正在等待第二個數字。

而不是4 2 ENTER ,鍵入4 2 f o o ENTER


您需要驗證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);
}

一個非常簡單的代碼(特別適合初學者)。

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

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();
}        

您的程序從控制台讀取數據,控制台處於“熟”模式。 在此模式下,控制台收集輸入並允許用戶編輯它。 ReturnEnter鍵后,數據將發送到程序。

您想要的模式是“原始”模式。 有多種方法可以進入原始模式,但這取決於您的操作系統。

快速修復是輸入兩位數字並按Return

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM