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

描述

 

【简答题-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 是 &+变量名;

 

 

编程结果

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
#include 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,指定格式输出 0000    printf("data_out = %04d

",data_out);     }  return 0;  }

   

加密算法

 

原文标题:一道简简单单的 C 语言编程题

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分