Jump to content

[Resolvido] Contar palavras com menos de 5 letras


askazy
 Share

Recommended Posts

Quero ler um texto, e contar quantas palavras com cinco ou menos letras tem no texto, a leitura é feita letra a letra,

a cada espaço em branco termina uma palavra, e quando o programa ler um '#' ele termina.Observação espaço em branco e '#' não contam

como palavra.

Exemplo de execução

n

a

o

s

e

i

#

Saida o numero de palavras com 5 ou menos letras é 2

#include <stdio.h>
int main (){
      int cont=0,cont2=0;
      char letra;
       do
         {
             scanf ("%c",&letra);
               if (letra == '#')
               cont2=cont2;
                else{
                      if (letra!= '\0')
                      cont++;
                        else
                        {
                            if (cont<=5 && cont >0)
                            cont2++;

                             cont=0;
                            }
                     }


         }  while (letra!='#');
           printf ("O numero de palavras com 5 letras ou menos eh %d\n",cont2);
         system ("pause");
      return 0;


      }
Edited by thoga31
GeSHi
Link to comment
Share on other sites

Várias notas iniciais:

  • Estando nós no quadro de C, é normal que precises de ajuda nesta linguagem. Alterei o título para algo mais objectivo.
  • O enunciado é útil, e o código também, mas não referes algumas coisas:
    • Onde tens dúvidas?
    • Tens erros no código? Se sim, quais e onde?
    • Com que input testaste o programa e qual foi o output que obtiveste? O que era esperado?

Quanto ao teu código, alguns apontamentos iniciais:

  • scanf("%c",&letra) - esta não é a forma correcta de obter um caracter. Podes usar o scanf, mas tens de fazer uma breve alteração no primeiro argumento. Em alternativa, existe a função getchar.
  • cont2=cont2 - não entendi a existência desta instrução. Tens noção que isto não faz nada a não ser encher salsichas?
  • Não estou a ver bem como estás a controlar o fim da introdução de uma palavra. Baseias-te imenso nos contadores e pouco nos caracteres lidos, e quando controlas os caracteres, usas condições cujo propósito não entendo.
Edited by thoga31

Knowledge is free!

Link to comment
Share on other sites

Só mais uma adição a aquilo que foi dito pelo thoga,imagina que o teu ficheiro/strings (?) são apenas constituidas por # o teu ciclo do while ira executar sempre uma vez. Outra coisa é que é que obrigar o utilizar a introduzir carácter a carácter é excelente, se não for um exercício obrigatório para a universidade faz outra coisa decente :/

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.