Boas,
Tens ai muitos problemas. Vou tentar chegar a tudo...
- O compilador não dá erros, porque o código não tem erros.
- Logo no início do programa, porque é que utilizaste um while? Não me parece que tenhas assimilado a utilidade dessa estrutura de controlo, nem o seu propósito. Vai rever esse conceito.
- Também na guarda dessa estrutura de controlo, recorres a uma variável i? O que é i? Tu crias a variável, mas esta nunca é inicializada (muito menos até ao ponto do programa onde a utilizas a 1ª vez).
O valor que i contém quando tentas fazer while(i>9 && i<19) é atribuído pelo compilador. Na prática estás a tentar testar uma condição que nem tu sabes o que é, porque nem tu sabes o que é i.
O resultado é que o teu programa salta da linha 7 para a linha 20...
- Pelo amor de Deus, não dês nomes às variáveis a,b,c,d,e,f,g. És um Humano. É muito mais difícil estar a ler código quando o nome das variáveis não te dizem absolutamente nada.
De 3 em 3 linhas estás-te a perguntar: "Afinal o que é que é suposto o a ser?". E lá vais tu ler para trás até encontrares onde declaraste a variável, onde lhe atribuíste um valor só para perceberes o que é que aquilo é.
Se em vez de a deres o nome à variável de horaInicio torna tudo mais simples - para ti e para qualquer outro que leia o que fizeste.
- Mesmo entrando pelo while a dentro, continuo a não perceber a lógica. Então se as horas de início coincidirem imprimes a hora de início e p.
Imagina que um pode das 9 às 16 e outro das 11 às 15. A reunião é de 1 hora e pode ser feita entre as 11h - 14h. Na tua lógica, como não podem os dois logo às 9h (porque 9 != 11), então já não é possível...
- A mesma coisa para a hora do fim. Esta ainda me fez menos sentido...
Algumas sugestões. O teu problema (ainda) não está no código, está na lógica, no algoritmo. Antes de te sentares ao computador, agarra num pedaço de papel e escreve\desenha\rabisca os passos que tens de tomar para chegares ao resultado.
http://www.unf.edu/~broggio/cop2221/2221pseu.htmhttp://en.wikipedia.org/wiki/PseudocodeEm problemas grandes, ajuda-te a esmiuçar o problema em problemas mais pequenos e a resolvê-los. Em questões mais "intuitivas" como esta, força-te a fazer o exercício de colocar "passo a passo" a tua linha de raciocínio (repara que no exemplo que dei acima, dizeres que a reunião é possível das
11h às
14h sai-te quase automaticamente - a questão é como é que na tua cabeça tu raciocinaste para chegar lá).
Depois de teres rabiscado, riscado e reescrito o programa 20x's (que no início é sempre o que acontece), passa então para a frente do PC para lidares com erros de compilação e afins.
Sugestão de resolução - é a minha. Devias tentar chegar à tua (espero não te estar a fazer um trabalho de casa, MESMO).
Pseudo-Código (deves fazer isto com papel e caneta, não no Word):
http://ge.tt/8jzou59?cSolução (em Java porque tinha o IDE aberto, se não entenderes alguma coisa, diz):
http://paste2.org/p/1734859