电文密码问题

题目:有一行电文,已按照下面规律译成密码:
A-Z B-Y C-X
a-z b-y c-x
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求编译程序将密码译回原文,并输出密码和原文。
for();后面有分号就代表着这是一个普通的语句
字符数组不可以直接进行运算,注意哦
思路:
①:分为三个数组,一个是被赋值的数组,一个是大写字母数组和小写字母数组
②:进行两层循环,被赋值数组变量进行循环,字符进行转换,赋值。

#include 
void main()
{
     
	char a[20],xi[26],da[26];
	int i,j,k;
	for(i=0,j='A',k='a';i<26;xi[i]=k++,da[i]=j++,i++);
	printf("password:");
	gets(a);
	printf("password:");
	puts(a);
	for(i=0;i<20;i++)
	{
     
		for(j=0;j<26;j++)
		{
     
			if(a[i]==da[j])
			{
     
				a[i]=da[25-j];
				break;
			}
			if(a[i]==xi[j])
			{
     
				a[i]=xi[25-j];
				break;
			}
		}
	}
		printf("original:");
		puts(a);
}

你可能感兴趣的:(电文密码问题)