Nesse exercício, estou com alguns problemas:
Se eu fizer com char:
Quando coloco ele como vetor e peço para fazer uma leitura do seu código e vou inserindo os dados, vai aparecer de forma bugada. Como faço para que isso não ocorra?
Se eu fizer com String:
Não vai acontecer como foi em char (de forma bugada), mas tambem não estou conseguindo fazer com que os caracteres sejam contabilizados, como faço para que ele faça a contagem só das vogais e que depois exiba o valor das vogais com o número de vogais?
Exercício:
Faça um algoritmo para:
• Ler um conjunto de letras e as armazenar em um vetor (máximo 50 posições) de Caracteres. Caso o usuário digite o valor “#”, a leitura deve ser interrompida;
• Imprimir cada palavra do vetor de trás para frente, informando quantas vogais possuem;
• Imprimir quantas vogais cada palavra possui;
Exemplo:
A - C A S A - D E - M A R I A - É - B O N I T A
Resultado:
BONITA – 3
É – 1
MARIA – 3
DE – 1
CASA – 2
A – 1
Código com char:
import java.io.IOException;
import java.util.Scanner;
public class Exercício{
public static void main(String[] args) throws Exception{
Scanner input = new Scanner(System.in);
char[] letras = new char[50];
int i, vogais;
vogais = 0;
for(i = 0; i < letras.length; i++){
System.out.println("Informe um conjunto de letras: ");
letras[i] = (char) System.in.read();
if(letras[i] == '#'){
break;
}
if(letras[i] == 'A' || letras[i] == 'E' || letras[i] == 'I' || letras[i] == 'O' || letras[i] == 'U'){
vogais++;
}
}
System.out.println("ordem decrescente: ");
for(i = letras.length-1; i > -1; i--){
System.out.println(letras[i] + " - " + vogais + " vogais");
}
input.close();
}
}
Código com String:
import java.util.Scanner;
public class Exercicio{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int cont_vog, limite;
String[] letras = new String[50];
String[] decrescente = new String[50];
//1º
cont_vog = 0;
limite = 0;
for (int i = 0; i < letras.length; i++) {
System.out.println("informe a " + (i+1) + " letra: ");
letras[i] = input.next();
limite++;
if(letras[i].equals("E") || letras[i].equals("I") || letras[i].equals("O") || letras[i].equals("U")){
cont_vog++;
}
if(letras[i].equals("#")){
break;
}
}
//2º
System.out.println("ordem decrescente: ");
for(int i = limite-1; i > -1; i--){
System.out.println(letras[i] + " - " + cont_vog);
}
input.close();
}
}