【简答题-9】
有一套四位数加密系统,输入四位数以后会自动加密。加密规则如下:每位数字都加上 5,然后用和除以 10的余数代替该数字,分别再将第一位和第四位交换、第二位和第三位交换,请用 C 语言写出此加密算法。
分析要点
1. 准备使用多次循环输入,while 循环,并且指定一个输入退出机制,用 break 退出外部的 while;
2. sacnf 输入时,一定注意对于 int、unsigned int 等类型的数据需要使用& 取地址符号,而对于字符数组或者字符串是不需要用&,直接给变量名;
scanf("%d",&data_in);//注意&取地址符号scanf("%s",data_in);//对于字符串,字符数组,变量名就是数组首地址
3. 对一个四位数取每一位的数据,应该依次取模后取除法;
4. 输出要按指定格式输出,考虑输出结果是 0 或者 12 等不足 4 位数的情况,需要在前面补零,即输出 0000、0012 等;
printf("data_out = %04d
",data_out);
注意 printf 输出和 scanf 输入的不同,printf 直接是变量名,scanf 是 &+变量名;
编程结果
int main(){int data_in;char A, B, C, D;char A1, B1, C1, D1;int data_out;while(1) {printf("please input data_in: ");scanf("%d",&data_in);// 输入 11111 表示退出if(data_in==11111){printf("Exit ");// break 退出了 while 循环break;}// 取出 四位数A = data_in / 1000;B = (data_in % 1000) / 100;C = (data_in % 100) / 10;D = (data_in % 10);// 加 5 求 余数A1 = (A + 5) % 10;B1 = (B + 5) % 10;C1 = (C + 5) % 10;D1 = (D + 5) % 10;// 位交换 + 拼接data_out = D1*1000 + C1*100 + B1*10 + A1;//指定格式输出,输出4位,不够4位的前面补零到 4 位// 比如 0,指定格式输出 0000printf("data_out = %04d ",data_out);}return 0;}

原文标题:一道简简单单的 C 语言编程题
文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。
-
C语言
+关注
关注
183文章
7642浏览量
144553 -
编程
+关注
关注
90文章
3707浏览量
96735 -
加密算法
+关注
关注
0文章
219浏览量
26136
原文标题:一道简简单单的 C 语言编程题
文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
汽车遥控加密算法
基于STM32的C语言SHA256加密算法相关资料下载
利用汇编语言实现DES加密算法
用C 语言描述AES256 加密算法
c语言实现des加密算法详细过程
Go常用的加密算法详细解读
基于STM32的C语言SHA256加密算法

用C语言写出简单的加密算法
评论