C中数字的凯撒密码

时间:2019-12-08 08:54:02

标签: c caesar-cipher

我想对数字做一个凯撒密码。 (在所有数字前加3)

输入:52 输出:85

输入:954 输出:287

输入:-10457 输出:-43780

如果有人帮助我,我会很高兴。


我尝试过这种方法,但是当我输入的数字少于5个数字时,它将输出3到开头


当我输入52 它输出33385

#include<stdio.h>
#include<stdlib.h>

int main() {

int number,operation;

printf("Enter the number: ");
scanf("%d",&number);

printf("%d", ((number/10000)+3)%10);
printf("%d", (((number % 10000)/1000)+3)%10);
printf("%d", (((number % 1000)/100)+3)%10);
printf("%d", (((number % 100)/10)+3)%10);
printf("%d\n", ((number % 10)+3)%10);

printf("press 1 to continue or 2 for exit.");
scanf("%d",&operation);

switch(operation) {
    case 1:
            printf("Enter the number: ");
scanf("%d",&number);

printf("%d", ((number/10000)+3)%10);
printf("%d", (((number % 10000)/1000)+3)%10);
printf("%d", (((number % 1000)/100)+3)%10);
printf("%d", (((number % 100)/10)+3)%10);
printf("%d\n", ((number % 10)+3)%10);


        break;


    case 2:


        break;
}


return 0;

}

2 个答案:

答案 0 :(得分:4)

这是通用算法:

  • 将ASCII数字写入缓冲区,
  • 遍历缓冲区中的字符,
  • 对于每个字符,
    • 如果是数字,请加3,
    • 如果结果ASCII码大于“ 9”,则减去10

用C语言编写此算法是一项练习,您应该在学习过程中表现自己。跳过此练习,将使您变得更聪明。

答案 1 :(得分:1)

您必须首先遍历数字的每个数字。
然后,对于每个数字,将3加到数字上,并使用模10(% 10)来仅检索数字的最后一位数字。
然后,您必须将每个数字连接在一起以构建您的凯撒加密字符串。