欢迎光临散文网 会员登陆 & 注册

educoder 1

2023-04-07 09:21 作者:97dylan  | 我要投稿

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
#define N 26

void Encrypt(int K, char* clearText, char* cipherText)
{
    // 请在这里补充代码,完成本关任务
    /********* Begin *********/
    int i,z=0;
   for(i=0;i<strlen(clearText);i++)
   {
        if (clearText[i] >= 'A' && clearText[i] <= 'Z') {
            cipherText[z] = ( (clearText[i] - 'A') + K) % 26 + 'A';
        }
        else if (clearText[i] >= 'a' && clearText[i] <= 'z') {
            cipherText[z] = ((clearText[i] - 'a') + K) % 26 + 'a';
        }
        else { 
            cipherText[z] = clearText[i];
        }
        z++;
   }
   cipherText[i]='\0';
 
    /********* End *********/
}

void Dencrypt(int K, char* clearText, char* cipherText)
{
    // 请在这里补充代码,完成本关任务
    /********* Begin *********/
   int i,z=0;
   for(i=0;i<strlen(cipherText);i++)
   {
       if (cipherText[i] >= 'A' && cipherText[i] <= 'Z') {
            clearText[z] = (((cipherText[i] - 'A') - K)) % 26 + 'A';
            if (((cipherText[i] - 'A') - K) < 0) {
                clearText[z] = clearText[z] + 26;
            }
        }
        else if (cipherText[i] >= 'a' && cipherText[i] <= 'z') {
            clearText[z] = ( ((cipherText[i] - 'a') - K)) % 26 + 'a';
            if (((cipherText[i] - 'a') - K) < 0) {  //处理负数
                clearText[z] = clearText[z] + 26;
            }
        }
        else {  //判断是否是空格
            clearText[z] = cipherText[i];
        }
        z++;
   }
   clearText[i]='\0';

    /********* End *********/
}

int main(int argc, const char * argv[]) {
    
    int K;
    char ClearText[100];
    char ClearText2[100];
    char CipherText[100];
    
    scanf("%d", &K);
    scanf("%s", ClearText);
    printf("密钥:%d\n", K);
    printf("明文:%s\n", ClearText);
    
    Encrypt(K, ClearText, CipherText);
    printf("密文:%s\n", CipherText);
    
    Dencrypt(K, ClearText2, CipherText);
    printf("解密:%s\n", ClearText2);
    
    return 0;
}



//
//  main.cpp
//  step2
//
//  Created by ljpc on 2018/10/16.
//  Copyright  2018年 ljpc. All rights reserved.
//

#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string.h>

using namespace std;

void Encrypt(int* cipherTab, int len, char* clearText, char* cipherText)
{
    // 请在这里补充代码,完成本关任务
    /********* Begin *********/
  for(int i=0;i<len;i++) 
  {
      int a=cipherTab[i];
      cipherText[i]=clearText[a];
  }


    /********* End *********/
}


int main(int argc, const char * argv[]) {
    
    int cipherTab[100];
    char ClearText[100];
    char ClearText2[100];
    char CipherText[100];
    
    
    scanf("%s", ClearText);
    int len = int(strlen(ClearText));
    for (int i=0; i<len; i++) {
        scanf("%d", &cipherTab[i]);
    }
    
    printf("密钥:\n");
    for (int i=0; i<len; i++) {
        printf("%d ", i);
    }
    printf("\n");
    for (int i=0; i<len; i++) {
        printf("%d ", cipherTab[i]);
    }
    printf("\n");
    
    printf("明文:%s\n", ClearText);
    
    Encrypt(cipherTab, len, ClearText, CipherText);
    printf("密文:%s\n", CipherText);
    
    printf("解密:%s\n", ClearText);
    
    return 0;
}


educoder 1的评论 (共 条)

分享到微博请遵守国家法律