L1-007. 念數字


輸入一個整數,輸出每個數字對應的拼音。當整數為負數時,先輸出“fu”字。十個數字對應的拼音如下:

0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu

 

輸入格式:

輸入在一行中給出一個整數,如: 1234

提示:整數包括負數、零和正數。

輸出格式:

在一行中輸出這個整數對應的拼音,每個數字的拼音之間用空格分開,行末沒有最后的空格。如 yi er san si

輸入樣例:
-600
輸出樣例:
fu liu ling ling
時間限制
400 ms
內存限制
65536 kB
代碼長度限制
8000 B
判題程序
Standard
作者
翁愷
 
這道題需要注意的是每個數字對應的拼音之間個空格,否則系統將會認為格式錯誤。
 
解題思路:首先將數N的每個位數的數字都以個位數的形式分離出來,存入一個數組,然后倒着判斷數組應該輸出什么。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    int n;
    int i = 0, j;
    int x, y;
    int ch[100];

    scanf("%d", &n);

    x = n;

    if(n == 0)
        printf("ling");
    if(n < 0)
    {
        printf("fu ");
        x = -n;
    }

 i = 0; 
    while(x != 0)
    {
        y = x%10;
        x = x/10;
        ch[i] = y;
        i++;
    }

    for(j = i-1; j >= 0 ; j--)
    {
        if(ch[j] == 0)
            printf("ling");
        else if(ch[j] == 1)
            printf("yi");
        else if(ch[j] == 2)
            printf("er");
        else if(ch[j] == 3)
            printf("san");
        else if(ch[j] == 4)
            printf("si");
        else if(ch[j] == 5)
            printf("wu");
        else if(ch[j] == 6)
            printf("liu");
        else if(ch[j] == 7)
            printf("qi");
        else if(ch[j] == 8)
            printf("ba");
        else if(ch[j] == 9)
            printf("jiu");

  if(j != 0)
   printf(" ");
    }
 printf("\n");
    return 0;
}

 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM