Ir ao conteúdo

Posts recomendados

  • Membro VIP
Postado

Boa tarde!

O objetivo deste programa é mostrar quantas consoantes uma frase tem.

 

 

#include <stdio.h>
#include <stdlib.h>
int conta_vogais(char string[])
{
    int i=0;
    int vogais=0;
    while(string!='\0'){
        if(string=='a'||string=='A'){
            vogais++;
        }
        if(string=='e'||string=='E'){
            vogais++;
        }
        if(string=='i'||string=='I'){
            vogais++;
        }
        if(string=='o'||string=='O'){
            vogais++;
        }
        if(string=='u'||string=='U'){
            vogais++;
        }
        i++;
    }
    return vogais;
}
int main(void)
{
    int soma;
    int consoantes = 0;
    int j=0;
    char uma_string[]="Sou uma string";
    while (uma_string[j]!='\0'){
        j++;
        soma=soma+j;
    }
    int vogais=conta_vogais(uma_string);
    printf("Vogais:%d\n", vogais);
    consoantes=soma - vogais;
    printf("Consoantes=%i\n", consoantes);
    system("pause");
}

 

Postado

Explicação no código:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>//isdigit(int)

int conta_vogais(char string[]) 
{
    int i=0;
    int vogais=0;
    while(string[i] !='\0'){//sempre usar o indice [int]
        if(string[i]=='a'||string[i]=='A'){
            vogais++;
        }
        else if(string[i]=='e'||string[i]=='E'){//como nao vamos verificar o valor duas vezes caso ja encontramos acima, temos que usar else,
            vogais++;							//assim se encontrarmos em um dos else ifs, ele não ira ver nos outros abaixos.
        }
        else if(string[i]=='i'||string[i]=='I'){
            vogais++;
        }
        else if(string[i]=='o'||string[i]=='O'){
            vogais++;
        }
        else if(string[i]=='u'||string[i]=='U'){
            vogais++;
        }
        i++;
    }
    return vogais;
}
int main(void)
{
    int soma;
    int consoantes = 0;
    int j=0;
    char uma_string[]="Sou uma string";
    
    while (uma_string[j]!='\0'){
        if(uma_string[j] != ' ' && !isdigit(uma_string[j])) //Se não for espaco e numero
		   consoantes++;//então acrescentar consoantes - sendo que so depois obtemos o valor original de consoantes
		   j++;
    }
    
    int vogais=conta_vogais(uma_string);//Obter valor de vogais
    consoantes-=vogais;//consoantes = consoantes - vogais , obter valor original de consoantes
    
    printf("Vogais:%d\n", vogais);
    printf("Consoantes=%d\n", consoantes);
    system("pause");
}

Portanto, seu único erro deve ter sido o não uso de índice , no vetor string em conta_vogais(), portanto não sei dizer, pois poderia ter sido removido se você postou o codigo direto sem <> code.

Visitante
Este tópico está impedido de receber novas respostas.

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!