原题链接:[编程入门]电报加密
解题思路:
利用常量数组,将所需要的变化写进去,然后再依据自己进行的输入进行输出。正常思路绝对是可以的,然而………………:
像这样定义常量数组,直接依据下标变换进行输出即可 const char *rec="abcdefghijklmnopqrstuvwxyza"; const char *bec="ABCDEFGHIJKLMNOPQRSTUVWXYZA";

题目的数据一定是有一些奇怪的特殊符号,千万不要忽略,原样输出即可!!!!!
参考代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
const char *rec="abcdefghijklmnopqrstuvwxyza";
const char *bec="ABCDEFGHIJKLMNOPQRSTUVWXYZA";
char ch;
while((ch=getchar())!='\n'&&ch!=-1){
if(ch>='a'&&ch<='z')
cout<<rec[ch-'a'+1];
else if(ch>='A'&&ch<='Z')
cout<<bec[ch-'A'+1];
else
cout<<ch;
}
return 0;
}换成C语言只需要把
cout<<rec[ch-'a'+1]; cout<<bec[ch-'A'+1];
换成
printf("%c",rec[ch-'a'+1]);
printf("%c",bec[ch-'A'+1]);即可
0.0分
5 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include <bits/stdc++.h> using namespace std; int main(){ char x[100]={0}; gets(x); for(int i=0;i<strlen(x);i++){ if(x[i]>='a'&&x[i]<='z'||x[i]>='A'&&x[i]<='Z'){ if(x[i]!='z'&&x[i]!='z'&&x[i]!=' ')x[i]++; if(x[i]=='z'&&x[i]!=' ')x[i]='a'; if(x[i]=='z'&&x[i]!=' ')x[i]='a'; printf("%c",x[i]); }else{ printf("%c",x[i]); } } return 0; }#include<iostream> using namespace std; int main() { char a,b; cin>>a>>b; a+=1; b+=1; if(b==123) b=97; cout<<a<<b; return 0; } 这样子,在C++软件里都是行的,为什么在这里就是错了?#include<stdio.h> int main() { char * p,a[999]={0}; p=gets(a); int j=0; j=strlen(p); for(int i=0;i<j;i++) { if(p[i]>='a'&&p[i]<='z') printf("%c",(p[i])+1); else printf("%c",p[i]); } return 0; }有没有大佬看看哪里错了 #include <stdio.h> #include<string.h> int main() { int i; char str[100]; gets(str); int len; len = strlen(str); for (i = 0; i < len; i++) { if ((str[i] >= 'a'&&str[i] <= 'y') || (str[i] >= 'A'&&str[i] <= 'Y')) { printf("%c ", str[i]+1); } else if (str[i] =='z') { printf("a "); } else if (str[i] == 'Z') { printf("A "); } else printf("%c ", str[i]); } return 0; }#include<iostream> #include<stdio.h> #include<stdlib.h> using namespace std; int main() { char a[30]; gets(a); for(int i=0;i<19;i++) { if(a[i]>='a'&&a[i]<'z'||a[i]>='A'&&a[i]<'Z') { a[i]++; } if(a[i]=='z') { a[i]='a'; } if(a[i]=='Z') { a[i]='A'; } } puts(a); }这个也错误50%#include<stdio.h> #include<string.h> int main() { char b[100]; int a = 0; fgets(b,99,stdin); a = strlen(b); for (int i = 0; i < a - 1; i++) { if (b[i] >= 'a' && b[i] < 'z' || b[i] >= 'A' && b[i] < 'Z') b[i] += 1; else if (b[i] == 'z') b[i] = 'a'; else if (b[i] == 'Z') b[i] = 'A'; } puts(b); } 哪错了?