解题思路:
题目给的转换只有1-26的数字才能被转换,基于这个思路,而且要求是字典序最大的字符串,
用char类型数组存放输入,对每个元素进行遍历,如果每两个相邻的元素组成的两位数小于26,就把这两位数转换,除非组成的两位数大于26,才考虑对一位数进行转换,这样输出的字符就会是字典序最大
注意事项:
参考代码:
#include<stdio.h> int main() { char a[200000]; scanf("%s",a); char *p=a;//用指针遍历 while(*p!='\0') { int c=*p-'0';//个位 int b=c*10+(*(p+1)-'0');//在前的元素是十位,要注意 if(b<=26&&*(p+1)!='\0')//防止加上了空,出现乱码 { printf("%c",'A'+b-1); p++; } else printf("%c",'A'+c-1); p++; } return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:719 |
川哥的吩咐 (C++代码)浏览:1008 |
字符串输入输出函数 (C++代码)(都当成字符串吧hhhhhhhh)浏览:493 |
C语言训练-求具有abcd=(ab+cd)2性质的四位数 (C语言代码)浏览:562 |
妹子杀手的故事 (C语言代码)浏览:1218 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:326 |
Cylinder (C语言描述,蓝桥杯)浏览:1247 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:553 |
大家好,我是验题君浏览:576 |
时间转换 (C语言代码)浏览:625 |