C语言编程问题求解答

描述
密码学的历史大致可以追溯到两千年前,相传古罗马名将恺撒(Julius Caesar)为了防止敌方截获情报,便用密码传送情报。

恺撒的做法很简单,就是对十个阿拉伯数字建立一张对应表,如将数字0变成数字5,数字1变成数字6,即每个数字变成其值加5之后对10取余得到的数字,5变成1,6变成2,具体变化规律见下表:

原文 密文
0 5
1 6
... ...
5 0
6 1
... ...
8 3
9 4

数字按照上述规律变换,如“12345”转换成“67890”。
关于输入
输入包括两行,每行均为一组0-9之间的整数。第一行是一组原文,要求输出其加密后的密文;第二行是一组经加密后的密文,要求输出其原文。每行输入均为10个数,相互之间用空格隔开。两行输入数字之间没有关系。
关于输出
两行,第一行为第一行输入对应的密文,第二行为第二行输入对应的原文,相互之间用空格隔开。
例子输入
3 3 4 5 6 7 8 2 2 3

4 4 6 7 8 9 0 7 7 8

例子输出
8 8 9 0 1 2 3 7 7 8

9 9 1 2 3 4 5 2 2 3


#include<stdio.h>
// #include<stdlib.h>
int main(){
    int time=2;
    int array[2][10];
    for(int j=0;j<time;j++){
        for(int i=0;i<10;i++) scanf("%d",&array[j][i]);
    }
    for(int j=0;j<time;j++){
        for(int i=0;i<10;i++) 
             if(i<9)
                  printf("%d ",(array[j][i]+5)%10);
              else
                  printf("%d",(array[j][i]+5)%10);
        if(j<time-1)
            printf("\n");
    }
//    system("pause");
}
 

img


#include <stdio.h>
#include <string.h>
int main(){
    int a[10],b[10];
    for(int i = 0;i < 10;i++){
        scanf("%d",&a[i]);
        a[i] = (a[i] + 5) % 10;
    }
    for(int i = 0;i < 10;i++){
        scanf("%d",&b[i]);
        b[i] = (b[i] + 5) % 10;
    }
    for(int i = 0;i < 10;i ++){
        printf("%d ",a[i]);
    }
    printf("\n");
    for(int i = 0;i < 10;i ++){
        printf("%d ",b[i]);
    }
    
    return 0;
}