C, C, C PROGRAMMING DO NOT ANSWER IF YOU CANT FIX MY CODE OR ANY OF THE EXAMPLES BELOW WILL NOT WORK PROPERLY! Write a program to implement the Caesar cipher. You program should read an integer N from standard in followed by a line of plain text, and should print the encoded line. The provided N can be any integer between 0 and 26, otherwise your program should print an error message and terminate as shown in the examples below. Any numbers or punctuation in the plaintext should be ignored. Note that the letters should be shifted circularly, i.e. if N = 3 letter y would become b. This is my code: #include <stdio.h> int main() { char array[100], cipher[100]; int c=0, x=0, y=0; int z; do { printf(\"Enter key: \"); scanf(\"%d\", &z); getchar(); if(z < 1 || z > 26) { z = 0; printf(\"Invalid key!\ \"); return(0); } }while(!z); printf(\"Enter line: \"); while((c=getchar()) != \'\ \') { array[x++]=(char)c; cipher[y++]=(char)(c+z); } array[x]=0; cipher[y]=0; printf(\"%s\ \",cipher); return 0; } IT SHOULD RUN ALL THE EXAMPLES BELOW CORRECTLY AND EXACTLY. PLEASE ANSWER IF ONLY AND ONLY YOU CAN FIX MY CODE TO IMPLEMENT EXACTLY EXACTLY THE SAME AS THE BELOW EXAMPLES! Example 1 Example 2 Example 3 Solution #include <stdio.h> #include<ctype.h> int main() { char array[100], cipher[100]; int c=0, x=0, y=0; int z; do { printf(\"Enter key: \"); scanf(\"%d\", &z); getchar(); if(z < 1 || z > 26) { z = 0; printf(\"Invalid key!\ \"); return(0); } }while(!z); printf(\"Enter line: \"); while((c=getchar()) != \'\ \') { array[x++]=(char)c; if(isalpha(c)){ if(c+z > \'z\'){ cipher[y++]=(char)((c+z-\'a\')%26 + \'a\');} else if (c+z > \'Z\' && c+z < \'a\') cipher[y++]=(char)((c+z-\'A\')%26 + \'A\'); else cipher[y++]=(char)(c+z); } else cipher[y++]=(char)c; } array[x]=0; cipher[y]=0; printf(\"%s\ \",cipher); return 0; } .