Ir para conteúdo
Fórum Script Brasil
  • 0

Manipulação de Strings - vogais


DgoH

Pergunta

Preciso de ajuda com o seguinte trabalho, em C :

Enunciado

Implemente um programa em C que recebe como entrada uma string composta por no máximo 100 vogais, e os pesos (valores inteiros) de cada uma das vogais. A partir daí o programa deve calcular o peso da string digitada e imprimir o resultado na tela. O peso da string deve ser composto pelo somatório dos pesos de todas as vogais que a compõem. Devem ser consideradas as vogais minusculas e maiúsculas. Caso sejam digitados caracteres diferentes de vogais, o programa deve apresentar uma mensagem de erro na tela, informando que foi digitado um valor inválido.

Veja o exemplo da execução abaixo. Em negrito estão os valores de entrada digitados pelo usuário.

Digite a String apenas com vogais <enter>: AeaIoOiu

Digite o peso das vogais a e i o u

Peso 1a vogal <enter>: 1

Peso 2a vogal <enter>: 2

Peso 3a vogal <enter>: 0

Peso 4a vogal <enter>: 3

Peso 5a vogal <enter>: 4

Peso Total da String = 14

Atenção: O cálculo é realizado como segue:

peso(AeaIoOiu)=

peso(A)+peso(e)+peso(a)+peso(I)+peso(o)+peso(O)+peso(i)+peso(u)=

1+2+1+0+3+3+0+4 = 14

O que já fiz foi,

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

char vogal[100]; //declara variável string

int tamanho;

int i,total;

vetor[5];

main ()

{

printf("Digite a String apenas com vogais: ");

gets(vogal);

printf("digite o peso das vogais : a e i o u\n");

for(i=0;i<5;i++){

printf("digite o peso da vogal %d\n",i);

scanf("%d",&vetor);

}

for(i=0;i<strlen(vogal);i++){

if((vogal=='a')||(vogal)=='A'){

}

else if((vogal=='e')||(vogal)=='E'){

}

else if((vogal=='i')||(vogal)=='I'){

}

else if((vogal=='o')||(vogal)=='O'){

}

else if ((vogal=='u')||(vogal)=='U'){

}

else{

printf("a string digitada não é vogal");

}

}

}

preciso faze-lo apenas com strings, nada de ponteiros e tal.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Tem nada de difícil.

1º: Leia a string;

2º: Leia os pesos de cada vogal;

3º: Percorra a string. Ao encontrar uma vogal (independente de ser maiúscula ou minúscula), some o peso da mesma á uma variável 'soma', inicializada com zero no momento da declaração.

Três passos fáceis.

Você pode fazer algumas modificações, como converter tudo para minúsculas antes de percorrer, por exemplo.

Link para o comentário
Compartilhar em outros sites

  • 0

poise, eu não sei bem como calcular o peso total das vogais ao final, poderia descrever?

Tem nada de difícil.

1º: Leia a string;

2º: Leia os pesos de cada vogal;

3º: Percorra a string. Ao encontrar uma vogal (independente de ser maiúscula ou minúscula), some o peso da mesma á uma variável 'soma', inicializada com zero no momento da declaração.

Três passos fáceis.

Você pode fazer algumas modificações, como converter tudo para minúsculas antes de percorrer, por exemplo.

Link para o comentário
Compartilhar em outros sites

  • 0

Armazene os pesos num vetor, e vá percorrendo a string. Quando achar uma vogal, pegue o valor e some á uma variável 'soma'.

Fiz dois exemplos:

#include <stdio.h>

int main(){
    char str[101], vogais[5] = {'A', 'E', 'I', 'O', 'U'};
    unsigned short int pesos[5], i, j, somaTotal = 0;

    printf("Digite a string: ");
    gets(str);

    for(i = 0; i < 5; i++){
        printf("Peso [%c]: ", vogais[i]);
        scanf("%hu", &pesos[i]);
    }

    for(i = 0; str[i] != ''; i++){
        str[i] -= (str[i] > 96 && str[i] < 123) ? 32 : 0;
        for(j = 0; j < 5; j++)
                somaTotal += (str[i] == vogais[j]) ? pesos[j] : 0;
    }

    printf("\nSoma total: %hu.\n", somaTotal);

    return(0);
}
#include <stdio.h>

int main(){
    char str[101], vogais[5] = {'A', 'E', 'I', 'O', 'U'};
    unsigned short int peso, i, j, somaTotal = 0;

    printf("Digite a string: ");
    gets(str);

    for(i = 0; str[i] != ''; i++)
        str[i] -= (str[i] > 96 && str[i] < 123) ? 32 : 0;

    for(i = 0; i < 5; i++){
        printf("Peso [%c]: ", vogais[i]);
        scanf("%hu", &peso);
        for(j = 0; str[j] != ''; j++)
            somaTotal += (str[j] == vogais[i]) ? peso : 0;
    }

    printf("\nSoma total: %hu.\n", somaTotal);

    return(0);
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...