Faça um programa que solicite inicialmente ao usuário a quantidade de pessoas. Em seguida o programa deve solicitar a idade seguida do estado civil (C - casado, S - solteiro, O - outros) desse conjunto de pessoas. Ao ler as entradas verifique se a idade é maior ou igual a 0 e o estado cívil é válido, caso contrário torne ler cada dado inválido novamente.
O programa deve calcular e exibir ao final, nesta ordem, em linhas separadas:
-
A quantidade de pessoas solteiras
-
O valor da média de idade das pessoas casadas (apenas se houver ao menos 1 pessoa casada!)
-
A idade da pessoa mais velha (a maior idade do conjunto)
Estou com dificuldade de entender repetições e vetores
Qual dificuldade exatamente com repetição e vetores? Pois você só postou o enunciado, não o que já tentou.
Dá pra fazer o que o exercício pede (solteiros, idade média e pessoa mais velha) sem usar vetores. Mas suponho que seja obrigatório no exercício.
Se quiser e puder usar classes, você pode criar uma classe com os atributos necessários, e inicializar um único vetor dessa classe. Algo como:
int quantidadeDePessoas = 10; // essa quantidade seria lida com Scanner ou outro input como JOptionPane
Pessoa[] listaDePessoas = new Pessoa[quantidadeDePessoas];
Daí, para cada pessoa lida, você preenche cada um dos atributos.
Se não puder usar classes, você precisa de um vetor para cada atributo, e usar o índice do array para saber qual posição está referenciando. Algo como:
int quantidadeDePessoas = 10;
int[] idadeDasPessoas = new int[quantidadeDePessoas];
char[] estadoCivilDasPessoas = new char[quantidadeDePessoas];
Um loop sobre esse vetores pode ser feito usando a mesma variável da quantidade de pessoas lidas:
for(int i = 0; i < quantidadeDePessoas ; i++) {
Pessoa pessoa = listaDePessoas[i];
// faz o que precisa com pessoa
}
ou, caso sejam múltiplos vetores:
for(int i = 0; i < quantidadeDePessoas ; i++) {
int idade = idadeDasPessoas[i];
char estadoCivil = estadoCivilDasPessoas[i];
// faz o que precisa com os dados
}
Abraço.