Given a list of integers, use the first integer as a split value and move the integers in the list in such a way that the integers smaller than the split value go to the left to the split value and the larger ones to the right and the split value sits in the "middle" of the list between the smaller and larger ones. For example:
Before moving ... 9, 6, 18, 10, 2, 4, 14, 5, 1, 15, 7, 21, After moving ... 5, 6, 7, 1, 2, 4, 9, 14, 10, 15, 18, 21,
Given a list of integers, write a function that finds the largest and second largest integers. Consider the function prototype below:
void getTwoLargestIntegers(int arr[], int size, int & largest, int & secondLargest);
Write a cipher that encodes a plain text message and decodes back to the original message. The cipher takes an input text message and a key (a sequence of numbers) and then arranges the characters of the message into a 2D grid. And then read off the characters from the grid column by column as an encoded message in the order specified by the column numbers in the key. Decoding is just a reverse process of the encoding above.
//Sample main() function void print(char b[], int size); void encode(char m[], int msgSize, char key[], int gridWidth); void decode(char m[], int msgSize, char key[], int gridWidth); int main() { string msg; //Original plain text message string key; //A sequence of numbers used for the order of the columns of a grid to be read off. int size; //The number of characters in the original message int length; //The length of the key for encoding cout << "Enter a plain text message for encoding" << endl; getline(cin, msg); cout << "Enter a key for encoding: " << endl; cin >> key; cout << endl; size = msg.length(); length = key.length(); //If the length of the string message is not a multiple of the length of the key, //cut off some trailing characters of the message to make it so. msg = msg.substr(0, size/length*length); size = msg.length(); char msg_arr[size + 1]; //Create an array of characters for storing the original message char key_arr[length + 1]; //Create an array of digits for the key strcpy(msg_arr, msg.c_str()); //Copy the original string message to the character array strcpy(key_arr, key.c_str()); //Copy the key to the character array cout << "Original plain text message: " << endl; print(msg_arr, size); print(key_arr, length); cout << endl; encode(msg_arr, size, key_arr, length); cout << "Encoded message: " << endl; print(msg_arr, size); cout << endl; decode(msg_arr, size, key_arr, length); cout << "Decoded message: " << endl; print(msg_arr, size); return 0; } //Sample output: Enter a plain text message for encoding YOURCELLPHONEHASBEENSTOLENDELETEDATAATONCE Enter a key for encoding: 31452 Message looks like in a 2D grid: YOURC ELLPH ONEHA SBEEN STOLE NDELE TEDAT AATON Message looks like after transposition: ULEEOEDT YEOSSNTA RPHELLAO CHANEETN OLNBTDEA Encoded message: ULEEOEDTYEOSSNTARPHELLAOCHANEETNOLNBTDEA Decoded message: YOURCELLPHONEHASBEENSTOLENDELETEDATAATON