Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

В целочисленном массиве М(N). Товарищи программисты, помогите написать код

Аврора Цветаева Ученик (83), на голосовании 4 дня назад
В целочисленном массиве М(N), N≤20, содержатся разные числа от 1 до k, k<N, а в массиве S(k) - не повторяющиеся числа от 1 до k в произвольном порядке. Требуется зашифровать данные массива М следующим образом: новым значением элемента массива М будет значение элемента массива S, индекс которого равен значению этого элемента массива М. Затем расшифровать i-тое значение массива M и присвоить результат переменной P.
Голосование за лучший ответ
Рустам Абдрашитов Мыслитель (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;
}
ПапаВысший разум (143744) 1 месяц назад
Ты хоть вообще в курсе, что твоя писанина обычно не работает?
Похожие вопросы