#include <stdio.h> #include <stdlib.h> #include <time.h> int ARRAY_SIZE = 100; int *R; void generateRandomNumbers() { int i; R = (int *)malloc(ARRAY_SIZE * sizeof(int)); if (R == NULL) { printf("Memory allocation failed.\n"); exit(1); } srand(time(NULL)); for (i = 0; i < ARRAY_SIZE; i++) { R[i] = i + 1; } for (i = ARRAY_SIZE - 1; i > 0; i--) { int j = rand() % (i + 1); int temp = R[i]; R[i] = R[j]; R[j] = temp; } } int encrypt(int p) { int i, c = 0; for (i = 0; i < p; i++) { c += R[i]; } return c; } int decrypt(int c) { int i, sum = 0; for (i = 0; i < ARRAY_SIZE; i++) { sum += R[i]; if (sum >= c) { return i + 1; } } return -1; } int main() { int plainValues[] = {92, 95, 22}; int cipher[] = {0,0,0}; generateRandomNumbers(); printf("Encryption:\n"); for (int i = 0; i < 3; i++) { cipher[i] = encrypt(plainValues[i]); printf("Plain: %d\tCipher: %d\n", plainValues[i], cipher[i]); } printf("\nDecryption:\n"); for (int i = 0; i < 3; i++) { int plain = decrypt(plainValues[i]); printf("Cipher: %d\tPlain: %d\n",cipher[i] , plainValues[i]); } free(R); // Free the allocated memory return 0; }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter