Baixe o app para aproveitar ainda mais
Prévia do material em texto
Seu colega de trabalho precisava escrever um algoritmo para cifrar um texto. Para isso, utilizou o seguinte código: #include <stdio.h> #include <stdlib.h> #include <string.h> void cifraCesar(char *texto, int chave) { int i; int tam = strlen(texto); for (i = 0; i <= tam-1; i++) { char letra = texto[i]; char letraCifrada = letra + chave; if (letra >= 65 && letra <= 90) { // trata letras maiusculas if (letraCifrada > 91) { letraCifrada = 65 + (letraCifrada - 91); } } else if (letra >= 97 && letra <= 122) { //trata letras minusculas if (letraCifrada > 123) { letraCifrada = 97 + (letraCifrada - 123); } } printf("%c",letraCifrada); } } int main() { cifraCesar("Adriana", 3); return 0; } No entanto, nas férias desse colega, seu chefe lhe chamou e pediu que melhorasse tal algoritmo, pois não ficara satisfatório. Então, você precisa analisá-lo e refazê-lo para que ele cifre e decifre o texto. Padrão de resposta esperado #include <stdio.h> #include <stdlib.h> #include <string.h> void cifraCesar(char *texto, int chave, int tipo) { int i; int tam = strlen(texto); for (i = 0; i <= tam-1; i++) { char letra = texto[i]; char letraCifrada; if (tipo == 0) { letraCifrada = letra + chave; } else { letraCifrada = letra - chave; } if (letra >= 65 && letra <= 90) { // trata letras maiusculas if (letraCifrada > 91) { letraCifrada = 65 + (letraCifrada - 91); } } else if (letra >= 97 && letra <= 122) { //trata letras minusculas if (letraCifrada > 123) { letraCifrada = 97 + (letraCifrada - 123); } } printf("%c",letraCifrada); } } int main() { cifraCesar("Dguldqd", 3,1); //cifraCesar("Adriana", 3,0); return 0; }
Compartilhar