Рустам Абдрашитов
Мыслитель
(9465)
1 месяц назад
НА
#include <stdio.h>
#define N 20 // Максимальный размер массива
void encrypt(int M[], int S[], int size) {
for (int i = 0; i < size; i++) {
if (M[i] > 0 && M[i] <= size) {
M[i] = S[M[i] - 1];
} else {
printf("Ошибка: значение M[%d] = %d выходит за пределы диапазона.\n", i, M[i]);
}
}
}
int decrypt(int M[], int S[], int index) {
if (index >= 0 && index < N) {
return S[M[index] - 1];
} else {
printf("Ошибка: индекс %d выходит за пределы массива.\n", index);
return -1;
}
}
int main() {
int M[N] = {3, 1, 2, 4};
int S[N] = {0, 2, 3, 1};
int size = 4;
printf("Исходный массив M: ");
for (int i = 0; i < size; i++) {
printf("%d ", M[i]);
}
printf("\n");
encrypt(M, S, size);
printf("Зашифрованный массив M: ");
for (int i = 0; i < size; i++) {
printf("%d ", M[i]);
}
printf("\n");
int indexToDecrypt = 2;
int P = decrypt(M, S, indexToDecrypt);
if (P != -1) {
printf("Расшифрованное значение M[%d]: %d\n", indexToDecrypt, P);
}
return 0;
}