Ir para conteúdo
Fórum Script Brasil

feswood

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre feswood

feswood's Achievements

0

Reputação

  1. Pessoal é o seguinte leiam atentamente essa questão dada pra mim: O seguinte método para codificar despachos diplomáticos foi adotado: primeiro etapa – todas seqüências não vogais incluindo o espaço em branco e os caracteres de pontuação são invertidas. Segunda etapa – a mensagem inteiro resultante é invertida dando origem à mensagem codificada. Por exemplo a mensagem original PROBLEMAS HIPER-INTERESSANTES. Passa a ser RPOLBEMAH SIPE-RITNERESSATNE.S Após a primeira etapa e finalmente é codificada como S.ENTASSERENTIR-EPIS HAMEBLOPR Após a Segunda etapa. O embaixador recebeu uma mensagem codificada como se segue: S. ETEUQAS RES TRIAR MAMPRO CEUGENSO CE SE. VENTERGU Escreva um programa em C que ajude o embaixador a decodificar mensagens assim codificadas. Use alocação dinâmica (onde cada nó contém um caractere no campo de info), pois o embaixador não sabe o tamanho da mensagem. aí está o código feito por mim: #include <stdio.h> #include <stdlib.h> #include <string.h> // // retorna != 0 se o valor passado // e' uma vogal // int vogal(char c) { char *v="AaEeIiOoUu"; while(*v) if(*v++==c) return true; return false; } // // detecta as sequencias de não-vogais // e defaz as trocas // void troca(char *msg, int *i) { int j, t; char aux; j=*i; t=0; while(msg[j]&&!vogal(msg[j++])) t++; switch(t) { case 2: // 2 não-vogais contiguas aux=msg[*i]; msg[*i]=msg[*i+1]; msg[*i+1]=aux; (*i)+=2; break; case 3: // 3 não-vogais contiguas aux=msg[*i]; msg[*i]=msg[*i+2]; msg[*i+2]=aux; (*i)+=3; break; case 4: // 4 não-vogais contiguas aux=msg[*i]; msg[*i]=msg[*i+3]; msg[*i+3]=aux; aux=msg[*i+1]; msg[*i+1]=msg[*i+2]; msg[*i+2]=aux; (*i)+=4; break; } } void main() { int k, j, t; char aux, *msg; msg = (char*) malloc(80); printf("Digite a mensagem codificada:\n>> "); gets(msg); t=strlen(msg); k=0; j=t-1; // reverte a string... while(j>k) { aux=msg[k]; msg[k]=msg[j]; msg[j]=aux; k++; j--; } // desfaz as trocas não-vogais... for(k=0; k<t; k++) troca(msg, &k); printf("\nMensagem decodificada:\n>> %s", msg); free(msg); } Porém não encontro uma maneira de encaixar uma Struct no código alguém poderia ajudar onde iseria a Struct como pedido na questão?? e o malloc tirar aquele 80 porque se a mensagem for maior que 80 vai dar erro.. ajudem por favor
×
×
  • Criar Novo...