【PAT】B1002 写出这个数

思路:
1.以字符串形式输入数据,计算结果
2.使用sprintf将结果数字转换为字符串(将数字每一位分开)
3.分别输出字符每一位

1,笨方法,用的ifelse来判断输出


#include<stdio.h>
#include<string.h>
char arr[110];

int getsum() {
    int sum = 0;
    int len = strlen(arr);
    for (int i = 0; i<len; i++) {
        sum += arr[i] - '0';
    }
    return sum;
}
int main() {
    scanf("%s", arr);
    int sum = getsum();
    sprintf(arr, "%d", sum);
    int len = strlen(arr);
    for (int i = 0; i<len; i++) {
        if (i != 0) printf(" ");
        if (arr[i] == '1')
            printf("yi");
        else if (arr[i] == '2')
            printf("er");
        else if (arr[i] == '3')
            printf("san");
        else if (arr[i] == '4')
            printf("si");
        else if (arr[i] == '5')
            printf("wu");
        else if (arr[i] == '6')
            printf("liu");
        else if (arr[i] == '7')
            printf("qi");
        else if (arr[i] == '8')
            printf("ba");
        else if (arr[i] == '9')
            printf("jiu");
        else if (arr[i] == '0')
            printf("ling");
    }
    return 0;
}

2,简化代码,用如下代码简化输出部分的ifelse结构

char data[10][20] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu" };
printf("%s", data[arr[i] - '0']);
全部评论

相关推荐

11-13 14:37
门头沟学院 Java
点赞 评论 收藏
分享
不知道怎么取名字_:两个方向 1.简历针对性准备下 2.面试前也需要准备的 主要还是要看各个公司需求,看公司行业和岗位描述,那里面已经写了对技术的需求,一份简历,不可能和所有嵌入式岗位都匹配的
投递北京经纬恒润科技股份有限公司等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务