2023.7.7
1 //2023.7.7 2 //PTA 3 #include<iostream> 4 #include <iomanip> 5 #include<cstdio> 6 #include<cmath> 7 #include<cstring> 8 using namespace std; 9 void test01() 10 { 11 string s; 12 int tel[12] = {0}; 13 int arr[11] = {0}; 14 int index[12] = {0}; 15 int num[10] = {0}; 16 cin >> s; 17 for (int i = 0; i < 11; i++) 18 { 19 tel[i] = s[i] - '0'; 20 } 21 for (int i = 0; i < 11; i++) 22 { 23 switch (tel[i]) 24 { 25 case 0: 26 num[0]++; 27 break; 28 case 1: 29 num[1]++; 30 break; 31 case 2: 32 num[2]++; 33 break; 34 case 3: 35 num[3]++; 36 break; 37 case 4: 38 num[4]++; 39 break; 40 case 5: 41 num[5]++; 42 break; 43 case 6: 44 num[6]++; 45 break; 46 case 7: 47 num[7]++; 48 break; 49 case 8: 50 num[8]++; 51 break; 52 case 9: 53 num[9]++; 54 break; 55 default: 56 break; 57 } 58 }//找出电话号码中所包含的数字 59 int n = 0; 60 for (int i = 9; i >=0; i--) 61 { 62 if (num[i] != 0) 63 { 64 arr[n] = i; 65 n++; 66 } 67 }//将电话号码中的数字,按照降序排列在数组arr中 68 int m = 0; 69 for (int i = 0; i < 12; i++) 70 { 71 for (int j = 0; j < n; j++) 72 { 73 if (tel[i] == arr[j]) 74 { 75 index[m] = j; 76 m++; 77 } 78 } 79 }//将电话号码中数字对应arr的下标赋值给index中 80 int a = 0; 81 int b = 0; 82 cout << "int[] arr = new int[]{"; 83 for (int i = 0; i < n; i++) 84 { 85 cout << arr[i]; 86 a++; 87 if (a == n) 88 { 89 cout << "};"; 90 } 91 else 92 { 93 cout << ","; 94 } 95 } 96 cout << endl; 97 cout << "int[] index = new int[]{"; 98 for (int i = 0; i < 11; i++) 99 { 100 cout << index[i]; 101 b++; 102 if (b == 11) 103 { 104 cout << "};"; 105 } 106 else 107 { 108 cout << ","; 109 } 110 } 111 cout << endl; 112 } 113 int main() 114 { 115 test01(); 116 return 0; 117 }