05-2. 念数字(15)

输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出“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

注:此题也可以使用switch-case语句实现

#include "stdio.h"
int main()
{
    int N,t,p,n=0;
    scanf("%d",&N);
    t=N;
    if(N<0)
    {
        printf("fu ");
        N=-N;
    }
    if(N==0)
    {
        printf("ling");
        goto out;
    }
    p=N;
    while(N>9)
    {
        N/=10;
        n++;
    }
    int x=1;
    while(n>0)
    {
        x*=10;
        n--;
    }
    int z;
    do{
        z=p/x;
        if(x>0)
        {
            p%=x;                //x!=0
        }
        x/=10;
        if(z==0)
        {
            printf("ling");
        }
        else if(z==1)
        {
            printf("yi");
        }
        else if(z==2)
        {
            printf("er");
        }
        else if(z==3)
        {
            printf("san");
        }
        else if(z==4)
        {
            printf("si");
        }
        else if(z==5)
        {
            printf("wu");
        }
        else if(z==6)
        {
            printf("liu");
        }
        else if(z==7)
        {
            printf("qi");
        }
        else if(z==8)
        {
            printf("ba");
        }
        else
        {
            printf("jiu");
        }
        if(x>0)
        {
            printf(" ");
        }
    }while(x>0);
out:
    return 0;
}
时间: 2024-10-10 13:10:32

05-2. 念数字(15)的相关文章

PAT 团体程序设计天梯赛-练习集 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

1181: 念数字

台州ACM:1181: 念数字 描述 编一个"念数字"的程序,它能让计算机完成以下工作:当你输入一个0至99 之 间的数后,计算机就会用汉语拼音印出这个数. 如果输入的数不在0到99 之间,就印出"CUO LE". 注:为了使不熟悉汉语拼音的同学也能做这个题,把"零,一,二,三,--,九,十"的 拼音法写在下面. 零 LING 一 YI 二 ER 三 SAN 四 SI 五 WU 六 LIU 七 QI 八 BA 九 JIU 十 SHI 输入 输入数

循环-05. 兔子繁衍问题(15)

1 #include<iostream> 2 using namespace std; 3 int sum(int n){ 4 if(n==1||n==2) 5 return 1; 6 else 7 return sum(n-1)+sum(n-2); 8 } 9 int main(){ 10 int i,p; 11 cin>>p; 12 for(i=1;sum(i)<p;) 13 ++i; 14 cout<<i<<endl; 15 return 0;

念数字

题目 念数字 (10 分) 输入一个整数,输出每个数字对应的拼音.当整数为负数时,先输出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

L1-007 念数字 (10分)

L1-007 念数字 (10分) 输入一个整数,输出每个数字对应的拼音.当整数为负数时,先输出 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 输出

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

4-9 统计个位数字 (15分)

本题要求实现一个函数,可统计任一整数中某个位数出现的次数.例如-21252中,2出现了3次,则该函数应该返回3. 函数接口定义: int Count_Digit ( const int N, const int D ); 其中N和D都是用户传入的参数.N的值不超过int的范围:D是[0, 9]区间内的个位数.函数须返回N中D出现的次数. 裁判测试程序样例: #include <stdio.h> int Count_Digit ( const int N, const int D ); int

PTA L1-007 念数字 (10分)

还是自己太菜了,只能用笨方法求解,过程曲折,有个问题一直不明白,在这里记录下来,以便以后翻看. include <stdio.h> include <stdlib.h> int main() { int N; int arr[100]; //此处当定义为 int arr[] = {0};时就会是程序的输出结果变为:ling si:(此时输入为:1234)难以理解,还是需要查看一下相关的定义.也就是不规定数组大小时,输出结果就是错误的. int i=0; scanf("%d

笔试算法题(15):-1到N中包含1的数字的个数 &amp; 连续和为N的序列

出题:输入一个整数N,求从1到N这N个整数的十进制表示中'1'出现的次数: 分析: 从左向右处理string表示的数字:当前数字长度为n,判断最左边一位数字字符: 如果是0,则直接递归下一位: 如果是1,则计数有两个来源,一个是n位数数字(实际就是除去最高位之后的数字大小,加上1,当其余位全部为0的时候),另一个是n-1,n-2,--,1位数字,使用SpecialPower可以计算: 如果是其他数字,则计数有两个来源,一个是n,n-1,n-2,--,1位数字,使用SpecialPower可以计算