一个二进制数,将其每一位取反,称之为这个数的反码。下面我们定义一个字符的反码。如果这是一个小写字符,则它和字符’a’的距离与它的反码和字符’z’的距离相同;如果是一个大写字符,则它和字符’A’的距离与它的反码和字符’Z’的距离相同;如果不是上面两种情况,它的反码就是它自身。 举几个例子,'a’的反码是’z’;'c’的反码是’x’;‘W’的反码是’D’;‘1’的反码还是’1’;’ ′ 的 反 码 还 是 ′ '的反码还是' ′ 的反码还是 ′ ’。 一个字符串的反码定义为其所有字符的反码。我们的任务就是计算出给定字符串的反码。
#include<stdio.h>
#include<string.h>
int main(){
char a[99][99];
int i,j;
int b;
int len=1;
int length;
int dis;
for(i=0;i<99;i++)
{
for(j=0;j<99;j++)
{
scanf("%c",&a[i][j]);
if(a[i][j]=='!')
break;
}
len++;
if(a[i][j]=='!')
break;
}
for(i=0;i<len;i++)
{
length=strlen(a[i]);
for(j=0;j<length;j++)
{
if(a[i][j]>='a'&&a[i][j]<='z')
{
dis=a[i][j]-'a';
a[i][j]='z'-dis;
}
else if(a[i][j]>='A'&&a[i][j]<='Z')
{
dis=a[i][j]-'A';
a[i][j]='Z'-dis;
}
else continue;
}
}
for(i=0;i<2;i++)
{
b=strlen(a[i]);
for(j=0;j<b;j++)
{
if(a[i][j]=='!')
break;
printf("%c",a[i][j]);
}
printf("\n");
}
return 0;
}