Ir ao conteúdo
  • Cadastre-se

Alline Ribeiro

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0

1 Seguidor

  1. Ola queridos! Estou com um problema neste codigo! /*5. Júlio César, o imperador romano, usava a Cifra de César para enviar ordens secretas aos seus generais. Este código consiste em trocar cada letra de uma mensagem pela terceira letra seguinte. Ou seja, a letra ‘a’ é substituída por ‘d’, ‘b’ é substituída por ‘e’, ‘c’ é substituída por ‘f’, e assim por diante. As exceções são as três últimas letras do alfabeto, ‘x’, ‘y’ e ‘z’, que são substituídas, respectivamente, por ‘a’, ‘b’ e ‘c’. Por exemplo, a palavra “zebra” se transformaria em “cheud”. Escreva uma função que codifique uma mensagem de acordo com a Cifra de César, aplicando a codificação apenas às letras da mensagem, maiúsculas ou minúsculas, e preservando os demais caracteres. Essa função deve receber como parâmetro uma cadeia de caracteres com a mensagem a ser codificada e retornar o ponteiro para uma nova cadeia de caracteres, alocada dinamicamente, com a mensagem codificada. A cadeia de caracteres original não pode ser alterada. A função deve ter o seguinte protótipo:*/ Este é o meu codigo : #include<stdio.h> #include<stdlib.h> #include<string.h> char * comparacao (char *frases); void main(){ char frase[20], *volta; int numero=0, i; printf("Digite a frase de apenas 20 caracters: "); gets(frase); numero=strlen(frase); volta=comparacao(frase); printf("\n"); for(i=0; i<numero;i++){ printf("%c ", volta[ i ]); } return 0; } char * comparacao (char *frases){ int numero=strlen(frases); char *letra, i ; letra = (char*) malloc(numero*sizeof(char)); for(i=0; i<numero; i++){ if(frases[ i ] == 'z'){ letra[ i ]='c'; }if(frases[ i ] == 'y'){ letra[ i ]='b'; } if(frases[ i ] == 'x'){ letra[ i ]='a'; }if(frases[ i ]==' '){ letra[ i ]=' '; }else { letra[ i ]=frases[ i ]+3; //printf("\n letra [%d]: %c e letra[%d] t : %c", i ,frases[ i ], i ,letra [ i ]); } } //for(i=0; i<numero; i++){ // printf(" %c ", letra[ i ]); // } return letra; } Então o problema é quando eu digito a letra z ou x ou y mais de uma vez ele não entra no if.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!