andremachado Posted December 18, 2012 at 10:11 PM Report #487758 Posted December 18, 2012 at 10:11 PM (edited) Boa noite Eu estou a desenvolver um código em linguagem c, porém sou muito novato, por isso pedia compreensão pelos erros que tenho no meu código provisório que mostrarei a seguir... Programa : Desenvolver um problema que recebe como Imput o código morse fornecido pelo utilizador, o numero de palavras de um dicionário, e as palavras do dicionário e sai como output o numero de frases possíveis com aquele dicionário http://uva.onlinejudge.org/external/11/1113.html - está aqui descrito Exemplo : imput : .---.--.-.-.-.---...-.---. 6 AT TACK TICK ATTACK DAWN DUSK output : 2 Restrições: aceita só letras maiúsculas palavras do dicionário máximo =10 000 numero de caracteres da sequência morse = 1000 atenção: caso algum caracter do morse nao tem correspondencia na palavra -> lixo -> nao devolve nada código actual: ... funcoes passar morse para letras e letras para morse: ... Edited January 19, 2013 at 03:28 PM by brunoais Código removido a pedido
HappyHippyHippo Posted December 18, 2012 at 10:45 PM Report #487768 Posted December 18, 2012 at 10:45 PM antes do mais, parabéns por não vires pedir que te façam o trabalho. agora as más notícias : na string com o código morse não existe espaços entre simbolos o que invalida completamente todo o teu algoritmos de codificação/descodificação. pequenos erros/anotações: int main() { char phr[1000]; // isto é um array de caracteres, nunca irás guardar palavras aqui ... fgets(morse,1000,stdin); // fazes bem em usar o fgets, no entanto tens de te lembrar que : // - se a string inserida tiver mais de 1000 caracteres, vai ficar lixo no buffer de leitura // - se tiver menos, tens de tirar o caracter '\n' lido e que foi escrito no buffer 'morse' printf("sentence invalidates (over 1000 characters)"); // ok, apresentas a mensagem, mas no entanto continuas a executar o código scanf("%d",&np); // les bem o número, mas não te esqueças da limpeza do buffer de leitura strcmp (morse, s2); /*create spaces in morse code - string funcion*/ // errado, a única coisa que faz é comparar strings, em que uma delas (s2) nem sequer está inicializada // a função main deverá retornar algo !!! } typedef struct smorse{ char letter; char *morse; } Morsecode[100]; // 100 !!! elá, mas afinal só precisas de 27 ... // não te esquecas que o tipo de dados fica automaticamente definido como um array !!! morsecode[100] // então a declaração do tipo de dados ?? // não deveria ser [i]Morsecode[/i] ??? // e sem [100], isso já está no tipo de dados // o resto nem vi porque como disse acima, necessitas de rever o problema por causa dos espaços no código morse IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts