zoukankan      html  css  js  c++  java
  • 【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']);
    
  • 相关阅读:
    console.time测试代码块执行时间
    label表单的关联性
    attr返回被选元素的属性值
    2018 885程序设计编程题
    输出斐波拉数列的前n个数(n>=2)
    简单的光照贴图
    复杂纹理复制及纹理叠加效果
    简单纹理复制
    UV旋转shader
    shader实现积雪效果
  • 原文地址:https://www.cnblogs.com/hebust/p/9797452.html
Copyright © 2011-2022 走看看