将"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,"','m',r','e'。分别用 putchar函数和printf函数输出这5个字符。 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'代替。修 改程序并运行。
2条回答 默认 最新
- qfl_sdu 2021-05-11 09:55关注
你第三条要求中,A用V代替错了吧,应该用W吧。详细代码如下,望采纳,谢谢。
#include <stdio.h>
int main()
{
char buf[8] = {0}; //保存输入的字符
char buf2[8] = {0}; //保存转换后的字符--后4个字母
char buf3[8] = {0}; //保存转换后的字符--前4个字母//从终端输入字符
char c = 0;
for (int i= 0; i < 5; i++)
{
if (c != 0x0A)
printf("请输入第%d个字符:",i+1); //windows下敲击回车时,会有一个换行符输入
//从终端输入字符
c = getchar();
if( (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') )
buf[i] = c;
else if (c == 0x0A)
{
i--;
continue; //windows下敲击回车时,会有一个换行符输入
}else
{
printf("\n您输入的字符不在a-z 或 A-Z之间,请重新输入!\n");
i--;
continue;
}
//printf("\n");
//转换为大写
if(buf[i] >= 'a' && buf[i] <= 'z')
{
buf2[i] = buf[i] - 32;
buf3[i] = buf[i] - 32;
}
else
{
buf2[i] = buf[i];
buf3[i] = buf[i];
}
//转换为后4个字母
if (buf2[i] >= 'A' && buf2[i] <= 'V')
{
buf2[i] = buf2[i] + 4;
}else
buf2[i] = 'A' + (buf2[i] - 'V' - 1);//前向转换
if(buf3[i] >= 'E' && buf3[i] <= 'Z')
buf3[i] = buf3[i] - 4;
else
buf3[i] = 'W' + (buf3[i] - 'A');}
printf("使用putchar输出:\n");
printf(" >>原始输入:");
for(int i = 0; i < 5;i++)
putchar(buf[i]);
printf("\n >>后向调整后字符:");
for(int i = 0; i < 5;i++)
putchar(buf2[i]);
printf("\n >>前向调整后字符:");
for(int i = 0; i < 5;i++)
putchar(buf3[i]);printf("\n使用pritnf输出:\n");
printf(" >>原始输入:%s\n",buf);
printf(" >>后向调整后字符:%s\n",buf2);
printf(" >>前向调整后字符:%s\n",buf3);//
getchar();
getchar();}
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 使用MATLAB进行余弦相似度计算加速
- ¥15 服务器安装php5.6版本
- ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
- ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
- ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
- ¥15 arcgis处理土地利用道路 建筑 林地分类
- ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
- ¥100 寻会做云闪付tn转h5支付链接的技术
- ¥15 DockerSwarm跨节点无法访问问题
- ¥15 使用dify通过OpenAI 的API keys添加OpenAI模型时报了“Connection Error”错误