ACM题目
为什么代码只可以通过数据小的测试,当输入的数字较大时,就会出现乱码,如何改正能通过测试
3条回答 默认 最新
- 技术专家团-小桥流水 2023-01-17 11:06关注
题目说是不超过50个字符,但是包括50,所以申请空间的时候要大一些,char a[50]改成 char a[55].
另外,char类型的范围最大到127,所以'z'+25这种回导致越界,代码修改如下:#include <stdio.h> #include <string.h> int main() { char a[55]={0}; int n; int i; scanf("%d", &n); scanf("%s", a); n = n % 26; for (i = 0; i < strlen(a); i++) { if (a[i] + n <= 'z') a[i] = a[i] + n; else { a[i] = a[i] + (n - 26); } } printf("%s", a); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 PADS Logic 原理图
- ¥15 PADS Logic 图标
- ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
- ¥15 机器人轨迹规划相关问题
- ¥15 word样式右侧翻页键消失