Alguém fez esssa? Usando a linguagem de programação C/C++ escreva um programa que recebe uma string de até 20 caracteres e imprime, a string digitada, um vetor contendo as cinco primeiras vogais da string digitada e um vetor contendo as cinco últimas consoantes da string digitada. Observe que para resolver este problema, o seu programa deverá ter uma função para identificar se um caractere é vogal ou não.
Por favor
Essa caiu na minha atividade tbm, eu acertei ela entao ta aí:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int vogais_consoantes(char letra)
{
if (letra == 'a' || letra == 'e' || //parte da funcao para achar as vogais
letra == 'i' || letra == 'o' || letra == 'u' )
{
return 1;
}
else if (letra == 'b' || letra == 'c' || letra == 'd' || letra == 'f' || letra == 'g' || letra == 'h' || letra == 'j' || letra == 'k' || letra == 'l' ||
letra == 'm' || letra == 'n' || letra == 'p' || letra == 'q' || letra == 'r' || letra == 's' || letra == 't' || letra == 'v' || letra == 'w' ||
letra == 'x' || letra == 'y' || letra == 'z') // parte da funcao para achar as consoantes.
{
return 0;
}
}
int main ()
{
char string[20], vogal[5], consoante[5];
int tamanhostring, j = 0,i;
printf("Informe uma string:");
gets(string);
printf("\n\n String: %s\n\n",string);
tamanhostring= strlen(string); //copia o tamanho da string.
for (i = 0; (j < 5) && (i <= tamanhostring); i++)
{
if (vogais_consoantes(string[i]) == 1)
{
vogal[j] = string[i];
j++;
}
}
vogal[j]= '\0';
j = 0;
for ( i = tamanhostring;(j <= 5) && (i >= 0); i--)
{
if (vogais_consoantes(string[i]) == 0)
{
consoante[j] = string[i];
j++;
}
}
consoante[j] = '\0';
printf("\n\n Vogais no inicio da string %s: ",string);
for (int i = 0; vogal[i] != NULL; i++)
printf("%c ", vogal[i]);
printf("\n\n Consoantes no final da string %s: ",string);
for (int i = 1; consoante[i] != NULL; i++)
printf("%c ", consoante[i]);
printf("\n\n");
system("PAUSE");
return (0);
}
Conceitos: Entrade de dados, laços, comparações, vetores.
/* script para printar frase, printar as 5 primeiras vogais
e printar as ultimas 5 vogais. Exercicio 25193947
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char func_vec_vogal(char a);
int main(int argc, char const *argv[])
{
char frase[25], vogais[10] = "AaEeIiOoUu", vogal_1ida, cons_lida;
char cons[] = "QqWwRrTtYyPpSsDdFfGgHhJjKkLlÇçZzXxCcVvBbNnMm";
int i, j = 0, k = 1;
printf("Digite uma frase com no minimo 10 letras e no maximo 20: ");
fgets(frase, 25, stdin);
for(i = 0; i < 25; i++){ //Verificação das vogai
for (j = 0; j < 10; j++)
{
if(frase[i] == vogais[j] && k < 6){
vogal_1ida = vogais[j];
printf("Vogal %d: %c\n", k, vogal_1ida);
k++;
}
}
}
k = 5;
for(i = 25; 0 <= i; i--){ //Verificação das vogai
for (j = 0; cons[j]; j++)
{
if(frase[i] == cons[j] && k > 0){
cons_lida = cons[j];
printf("Consoante %d: %c\n", k, cons_lida);
k--;
}
}
}
printf("Frase que você entrou: %s\n", frase);
return 0;
}
Primeiro faça vetores de vogais e consoantes que servirão de base para a comparação. Fazer laços de varredura da frase tanto na sequencia normal e invertida. Fazer um laço, aninhando, para fazer a interação das vogais e consoantes com a frase. Fazer uma comparação pontual entre o caractere e a vogal ou consoante. Para mostrar apenas os 5 primeiras vogais, uma das condições de comparação deve ser até 5 interações, mesma logica para a consoante, porem o laço de varredura da consoante deve ser invertido para garantir que as ultimas 5 consoantes deverão ser mostradas. Mostre a frase que o usuário digitou.
Para escrever sua resposta aqui, entre ou crie uma conta
Programação I
•UNINTER
Compartilhar