将China译成密码,密码规律是:用原来字母后面第4个字母代替原来字母。列如,字母A后面第4个字母是E,用E代替A。因此China应译为Glmre。请编写一程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为C,h,i,n,a,经过运算使c1,c2,c3,c4,c5分别变成G l m r e,并输出。
1:输入事先编好的程序,并运行该程序,分析是否符合要求
2:改变c1 c2 c3 c4 c5的初值为T o d a y,对译码规律做如下补充:W用A代替,X用B代替,Y用C代替,Z用D代替。修改程序并运行
3:将译码规律改为:将一个字母被它前面第4个字母代替,例如E用A代替,Z用U代替,D用Z代替,C用Y代替,B用X代替,A用V代替。修改程序并运行
请发下3个程序代码 谢谢
不知道对不对,不怎么熟悉C++
#define Numb 4
char change(char *s_data,char *d_data,n);
void main()
{
char s_Data[256],d_Data[256];
int n,i;
cin >> n;
for (i = 0; i <n; i++)
{
cin >> Data[i];
}
change(s_Data,d_Data,n);
for (i = 0; i <n; i++)
{
cout >> d_Data[i];
}
}
// 1:用原来字母后面第4个字母代替原来字母
char change(char *s_data,char *d_data,n)
{
for(i=0; i<n; i++)
{
if(*s_data > 90 - Numb && *s_data <97)
*s_data = 65 - (90 - (*s_data - 1));
if(*s_data > 122 - Numb)
*s_data = 97 - (122 - (*s_data - 1));
*d_data++ = (*s_data++) + Numb);
}
return d_data;
}
// 2
char change(char *s_data,char *d_data,n)
{
for(i=0; i<n; i++)
{
if(*s_data > 90 - Numb && *s_data <97)
*s_data = 65 - (90 - (*s_data - 1));
if(*s_data > 122 - Numb)
*s_data = 97 - (122 - (*s_data - 1));
if(*s_data = W)
*s_data = A;
else if(*s_data = X)
*s_data = B;
else if(*s_data = Y)
*s_data = C;
else if(*s_data = Z)
*s_data = D;
else
*d_data = (*s_data++) - 4);
*d_data++;
}
return temp;
}
// 3:用原来字母前面第4个字母代替原来字母
char change(char *s_data,char *d_data,n)
{
for(i=0; i<n; i++)
{
if(*s_data > 90 && *s_data < 101)
*s_data = 122 + (90 + Numb - *s_data + 1);
if(*s_data < 65 + Numb)
*s_data = 90 + (65 + Numb - *s_data + 1);
*d_data++ = (*s_data++) - Numb);
}
return d_data;
}