PAT乙级练习1002

来源:互联网 发布:淘宝铁观音怎么选 编辑:程序博客网 时间:2024/05/16 09:45

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于1000(说好的1000?)。

输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:
1234567890987654321123456789
输出样例:
yi san wu

#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){    char n[1000];//由于题目要求的数字太长,只能用字符串数组     int sum = 0;//用于计算各位之和     int m;//用于计算数字的位数     char str[20];    gets(n);//输入     m = strlen(n);//得到输入的数字位数     //printf("位数为:%d\n",m);    for(int i = 0;i < m;i++){//遍历数组并计算出各位之和         sum+=n[i]-'0';     }    //printf("各位数字之和为:%d\n",sum);    //itoa(sum,str,10);//因为C++不支持,下面与之等价    snprintf(str, sizeof(str), "%d", sum);     //printf("%s\n",str);     m = strlen(str);    for(int j = 0;j < m;j++){//遍历数组并打印         switch(str[j]){            case '0':            if(str[j+1] == '\0'){                printf("ling\n");            }else{                printf("ling ");//输出后面有个空格,不能用\t                }            break;            case '1':            if(str[j+1] == '\0'){                printf("yi\n");            }else{                printf("yi ");              }            break;            case '2':            if(str[j+1] == '\0'){                printf("er\n");            }else{                printf("er ");              }            break;            case '3':            if(str[j+1] == '\0'){                printf("san\n");            }else{                printf("san ");             }            break;            case '4':            if(str[j+1] == '\0'){                printf("si\n");            }else{                printf("si ");              }            break;            case '5':            if(str[j+1] == '\0'){                printf("wu\n");            }else{                printf("wu ");              }            break;            case '6':            if(str[j+1] == '\0'){                printf("liu\n");            }else{                printf("liu ");             }            break;            case '7':            if(str[j+1] == '\0'){                printf("qi\n");            }else{                printf("qi ");              }            break;            case '8':            if(str[j+1] == '\0'){                printf("ba\n");            }else{                printf("ba ");              }            break;            case '9':            if(str[j+1] == '\0'){                printf("jiu\n");            }else{                printf("jiu ");             }            break;            default:            printf("出现错误");        }    }}
原创粉丝点击