有一行电文,以按下面规律译成密码:A--->Z a--->z B--->Y b--->Y C--->X c--->x


有一行电文,以按下面规律译成密码:

A--->Z   a--->z
B--->Y   b--->Y
C--->X   c--->x
……

即第1个字母编程第26个字母,第i个字母编程第(26-i+1)个字母,非字母字符不变,要求编程序将密码译回原文,并输出密码和原文。

【答案解析】

从题目给的实例中可以看到,编码规则非常简单,就是将从前往后数的第i个字母转化为从后往前数的第i个字母。

那解压时直接反过来转换即可:

即'Z'--->'A' 'z'--->'a'

​ 'Y'--->'B' 'y'--->'b'

​ 'X'--->'C' 'x'--->'c'

假设如果当前拿到的是小写字母,转换方式如下:

  1. 先用s[i] - 'a'计算出s[i]是26个字母中从前往后数的第几个
  2. 再用26 - (s[i]- 'a') - 1 转换为26个字母中从后往前数的第几个
  3. 在2的结果上加上'a',即转换为对应从后往前的第几个字母

大写字母转换方式与上述相同,将上述每条中的'a'换为‘A’即可。

【代码实现】

#include<stdio.h>
int main()
{
	char s[1024] = {0};
	scanf("%s", s);

	int len = strlen(s);
	// 转换
	for (int i = 0; i < len; ++i)
	{
		// 如果是小写字母(大写字母出来类似):
		// 1. 先用s[i] - 'a'计算出s[i]是26个字母中从前往后数的第几个
		// 2. 再用26 - (s[i]- 'a') - 1 转换为26个字母中从后往前数的第几个
		// 3. 在2的结果上加上'a',即转换为对应从后往前的第几个字母
		if (s[i] >= 'a' && s[i] <= 'z')
			s[i] = 'a' + 26 - (s[i]-'a')-1;
		else if (s[i] >= 'A' && s[i] <= 'Z')
			s[i] = 'A' + 26 - (s[i] - 'A')-1;
	}

	printf("%s", s);
	return 0;
}

【结果截屏】

有一行电文,以按下面规律译成密码:A--->Z   a--->z B--->Y   b--->Y C--->X   c--->x
有一行电文,以按下面规律译成密码:AZ az B>Y bY C>X c>x


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 有一行电文,以按下面规律译成密码: A--->Z a--->z B--->Y b--->Y C--->X c--->x …… 即第1个字母编程第26个字母,第i个字母编程第(26-i+1)个字母,非字母字符不变,要求编程序将密码译回原文,并输出密码和原文。 有一行电文,以按下面规律译成密码: 译密码。为使电文保密,往往按一定规律将其转换成密码,受保人再按约定的规律将其翻译回原文。A变E ,a变e,W,X,Y,Z分别变为A,B,C,D小写字母以此类推 写出下面各逻辑表达式的值。设a=3,b=4,c=5 (1)a + b > c && b == c (2)a || b + c && b - c (3)!(a > b) && !c || 1 (4)!(x = a) && (y = b) && 0 (5)!(a + b) + c - 1 && b + c / 2 试画出下面四条语句的前趋图: 试画出下面四条语句的前趋图: S1: a:=x+y S2: b:=z+1 S3: c:=a-b ... 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1)a + b > c && b == c (2)a || b + c && b - c (3)!(a > b) && !c || 1 (4)!(x = a) && (y = b) && 0 (5)!(a + b) + c - 1 && b + c / 2 【C语言】两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单,a说他不和x比,c说他不和x,z比,编写程序找出三对赛手名单。 两个乒乓球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程序找出3对赛手的名单 两个乒乓球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程序找出3对赛手的名单。 两个乒乓球队进行比赛,各出3人。甲队为A,B,C3人,乙队为x,y,z3人。抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和x比,C说他不和x,z比。编程找出3对赛手的名单。
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM