using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp5 { class Program { int Main(string[] args) { //定义一个较大的数组接受输入的数字 Char[] ch = new char[100]; string str; int sum = 0; //定义一个数组用来存放输入数字各位相加后的数字的各个位的数字 int[] sum0 = new int[999]; int i = 0; //a后面用来记录 i的值 int a = 0; //接受输入的数字并转化为数组存入ch[]中 str = Console.ReadLine(); ch = str.ToCharArray(); //将对应的拼音存入string类型数组中 string[] str1 = new string[10] {"yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu", "shi"}; //输入字符串末尾自动会添加一个'\0',所以以此作为判断结束的标志 for (i = 0; str[i] != '\0'; i++) { sum += str[i] - '0'; //不加上这一步最后一次循坏后i+1然后进入判定str[i]索引越界 //所有在最后一部的时候提前break不让i再加1 if (i == str.Length - 1) { break; } } //将i初始化 i = 0; //将输入数字各位加起来的数字再求其各个位的数字 //注意这是倒序存放在sum0[]数组中 while (sum != 0) { sum0[i] = sum % 10; sum = sum / 10; i++; } //最后一步操作i自增1,数组中从下标0开始,所有i要减去1 //比如一个sum是123,有3个位,i为3也就是3次循环但是数组0,1,2就够了 i--; //记录i的值在下面从i开始输出,因为在sum数组中是倒序记录的 a = i; for (int j = 0; j <= a; j++, i--) { //str1数组下标从0开始所以(sum0[i]) - 1] Console.Write(str1[(sum0[i]) - 1]); //最后一个数不带" " if (j != a) { Console.Write(" "); } } return 0; } } }
PTA ”写出这个数“
猜你喜欢
转载自www.cnblogs.com/jcahsy/p/11961727.html
今日推荐
周排行