2025-02-18学习记录--C/C++-PTA7-25念数字
- 电脑硬件
- 2025-09-02 00:09:01

一、题目描述 ⭐️ 二、代码(C语言)⭐️ /** * 输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。 */ #include <stdio.h> // 输出 正数 中 各位数 对应的 拼音 void getLetter(int num) { // 10个数字(0 ~ 9)对应的10个拼音(ling ~ jiu) // 定义一个字符串数组,包含10个字符串,每个字符串最大长度为39个字符(加上结尾的'\0') // 这里的40:最长字符是ling,长度为4,共有10个字符,所以最大长度是4*10=40个字符 char strArr[10][40] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; // 接收 所输入整数 的各位数,放入numArr数组中(由低位到高位) int numArr[100] = {}; // numArr数组中 所含数 的 个数 int count = 0; // 获取到 所输入整数 的 各位数 while(num != 0) { // 对 所输入整数 取余,获取到 所输入整数 的各位数 int n = num % 10; // 将 所输入整数 的各位数 由低位到高位 放入numArr数组中 numArr[count] = n; // numArr数组中 所含数 的 个数 加1 count++; // 依次处理高位数 num /= 10; } // 将 numArr数组中的数 倒序输出 for(int i = count - 1; i >= 0; i--) { // 获取到 所输入整数 的 各位数(由高位到低位) int realNum = numArr[i]; // 输出 所输入整数 的 各位数(由高位到低位)对应的拼音 if(i == 0) { printf("%s",strArr[realNum]); } else { printf("%s ",strArr[realNum]); } } } int main() { int N; // 一个整数 scanf("%d",&N); // 输入一个整数 if(N == 0) { // 如果N是0,直接输出ling字。 printf("ling"); }else if(N < 0) { // 如果N是负数,先输出fu字。 printf("fu "); // 将负数N 化成 正数N1 int N1 = N * (-1); // 再继续输出 正数对应的拼音 getLetter(N1); } else { // 如果N是正数,则直接输出 对应的拼音 getLetter(N); } return 0; }
2025-02-18学习记录--C/C++-PTA7-25念数字由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“2025-02-18学习记录--C/C++-PTA7-25念数字”