Ir ao conteúdo

Posts recomendados

Postado

 Desenvolva um programa que receba um nome 
a. Conte e mostre o número de vogais existentes nele; 
b. Mostre o número total de caracteres do nome; 
c. Calcule e mostre a porcentagem das vogais em relação ao total de caracteres

 

Alguém poderia me ajudar a fazer a c? O cálculo que eu faço não chega nem perto do resultado real. Se alguém souber o que está errado aí, agradeço.

#include<stdio.h>
#include<locale.h>
#include<string.h>

int main (){
	setlocale(LC_ALL, "Portuguese");
	char string[50+1];
	int i, v;
	
	printf("Digite uma string: ");
	gets(string);	
	
	for(i=0; string[i] != '\0'; i++){
		if((string[i]=='a')||(string[i]=='e')||(string[i]=='i')||(string[i]=='o')||(string[i]=='u')||(string[i]=='A')||(string[i]=='E')||(string[i]=='I')||(string[i]=='O')||(string[i]=='U')){
			v++;
			}
	}
		
	printf("Há %d vogais nessa string.", v-1);
	
	int tam_real = 0; //tam_real => tamanho da palavra digitada pelo usuario, tam => tamanho limite 
	
	for(i=0; string[i]!='\0'; i++){ //testa se a quantidade de caracteres da palavra 1 tá dentro do limite colocado pelo usuário
		tam_real++;
		if(string[i] == ' '){
			tam_real--;
		}
	}
	printf("\nCARACTERES: %d", tam_real);
	
	int porcent_real=0;
	
	porcent_real = (v*100)/tam_real;
	
	printf("\nA relação de porcentagem entre vogais e caracteres é %d", porcent_real);
	
	return 0;
}

 

 

  • Curtir 1
Postado
2 horas atrás, Rafaela Soares disse:

Oi, fiz isso e não mudou nada. 

 

7JjlsKNxH8nFbESYKZFuBXSihrqarM9U5KYV9gTL

 

Não mudou o quê? Pois o número de caracteres não brancos está correto, o número em v de caracteres também está correto e, por último, a percentagem também está correta ( 44 = 4*100/9 ).

 

Diga qual foi a sua entrada para teste.

  • Curtir 1
Postado

Uma outra abordagem poderia ser assim:

#include <iostream>
#include <algorithm>

using std::string;
using std::cout;
using std::cin;
using std::getline;
using std::for_each;

int main() {
    string nome = "";

    int quantidadeLetras = 0;
    int quantidadeVogais = 0;
    int quantidadeConsoantes = 0;
    int quantidadeNumeros = 0;
    int quantidadeEspeciais = 0;

    double porcentagemVogais = 0.0;
    double porcentagemConsoantes = 0.0;
    double porcentagemNumeros = 0.0;
    double porcentagemEspeciais = 0.0;

    // Entrada do usuário
    cout << "Digite o nome: ";
    getline(cin, nome);

    // Contagem das letras
    for(string::iterator iterator = nome.begin(); iterator != nome.end(); iterator++) {
        if(*iterator == ' ') {
            continue;
        }

        quantidadeLetras++;

        switch(toupper(*iterator)) {
            case 'A':
            case 'E':
            case 'I':
            case 'O':
            case 'U':
                quantidadeVogais++;
                break;
            case 'B':
            case 'C':
            case 'D':
            case 'F':
            case 'G':
            case 'H':
            case 'J':
            case 'K':
            case 'L':
            case 'M':
            case 'N':
            case 'P':
            case 'Q':
            case 'R':
            case 'S':
            case 'T':
            case 'V':
            case 'W':
            case 'X':
            case 'Y':
            case 'Z':
                quantidadeConsoantes++;
                break;
            case '0':
            case '1':
            case '2':
            case '3':
            case '4':
            case '5':
            case '6':
            case '7':
            case '8':
            case '9':
                quantidadeNumeros++;
                break;
            default:
                quantidadeEspeciais++;
                break;
        }
    }

    // Cálculo de porcentagem
    porcentagemVogais = quantidadeVogais * 100 / quantidadeLetras;
    porcentagemConsoantes = quantidadeConsoantes * 100 / quantidadeLetras;
    porcentagemNumeros = quantidadeNumeros * 100 / quantidadeLetras;
    porcentagemEspeciais = quantidadeEspeciais * 100 / quantidadeLetras;

    // Exibição dos dados
    system("clear");    // No Windows mude para "cls"
    cout << "-----------------------------------------" << "\n"
         << "      Nome: " << nome << "\n"
         << "    Letras: " << quantidadeLetras << "\n"
         << "    Vogais: " << quantidadeVogais << " (" << porcentagemVogais << "%)" << "\n"
         << "Consoantes: " << quantidadeConsoantes << " (" << porcentagemConsoantes << "%)" << "\n"
         << "   Números: " << quantidadeNumeros << " (" << porcentagemNumeros << "%)" << "\n"
         << " Especiais: " << quantidadeEspeciais << " (" << porcentagemEspeciais << "%)" << "\n"
         << "-----------------------------------------" << "\n";

    return 0;
}

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!