eu preciso fazer um algoritmo assim mais acho q estou errando em algo alguém pode me dizer?? obriigado
[code]/*1) Foi feita uma pesquisa entre os habitantes de uma região. Foram coletados os dados de idade,
sexo (M/F) e salário. Faça um programa que calcule e mostre:
- a média dos salários do grupo;
- a maior e a menor idade do grupo;
- a quantidade de mulheres com salário até R$ 200,00;
- a idade e o sexo da pessoa que possui o menor salário.
Finalize a entrada de dados ao ser digitada uma idade negativa.*/
import java.util.*;
public class exercicio1 {
public static void main(String args[]){
// Seção de Declarações
char sexo;
int idade = 0,conth,contf500,maior,menor;
double salario,ssalario = 0;
Scanner dado = new Scanner(System.in);
// Seção de Comandos
conth = 0;
contf500 = 0;
maior = 0;
menor = 200;
salario = 1;
while (idade < 0){
System.out.println("Qual a idade do entrevistado: ");
idade = dado.nextInt();
System.out.println("Sexo<M/F>: ");
sexo = dado.next().charAt(0);
System.out.println("Salario: R$");
salario = dado.nextDouble();
if(salario > 0 )
ssalario = ssalario + salario;
conth = conth +1;
if(idade > maior)
maior =idade;
if(idade < menor)
menor = idade;
if(salario <= 500 && sexo =='f')
contf500 =contf500 + 1;
}
System.out.println("Media dos salarios do grupo: R$"+ssalario/conth);
System.out.println("Menor idade: "+menor+" anos");
System.out.println("Maior idade: "+maior+" anos");
System.out.println("A quantidade de mulheres com salário até R$ 500,00 foi de: "+contf500);
}
}
[/code]
Do jeito que está nunca irá entrar no loop pois a idade está em 0 e o while vai ser enquanto a idade menor que zero, o certo seria enquanto idade maior ou igual a zero, corrija isso e estará tudo ok.
Não consegui entender muito bem seu algoritmo, os nomes das variáveis estão bem confusos…
Sugestão: crie métodos separados para retornar cada informação, passando os dados inseridos como parâmetro.
E, também, nunca utilize “==” para comparar strings (como em “sexo==‘f’”), utilize sempre string.equalsIgnoreCase(‘outraString’).
Você pode postar o resultado da execução, ou erros que estejam acontecendo?
eu mudei o algoritmo da uma olhada
[code]/*1) Foi feita uma pesquisa entre os habitantes de uma região. Foram coletados os dados de idade,
sexo (M/F) e salário. Faça um programa que calcule e mostre:
- a média dos salários do grupo;
- a maior e a menor idade do grupo;
- a quantidade de mulheres com salário até R$ 200,00;
- a idade e o sexo da pessoa que possui o menor salário.
Finalize a entrada de dados ao ser digitada uma idade negativa.*/
import java.util.*;
public class exercicio1 {
public static void main(String args[]){
// Seção de Declarações
char sexo = 0;
int idade = 0,conth,contf200,maior,menor;
double salario,ssalario =0;
Scanner dado = new Scanner(System.in);
// Seção de Comandos
conth = 0;
contf200 = 0;
maior = 0;
menor = 200;
salario = 1;
while (salario > 0){
System.out.println("Qual a idade do entrevistado: ");
idade = dado.nextInt();
System.out.println("Sexo<M/F>: ");
sexo = dado.next().charAt(0);
System.out.println("Salario: R$");
salario = dado.nextDouble();
if(salario > 0 ){
ssalario = ssalario + salario;
conth = conth +1;
}
if(idade > maior){
maior =idade;
}
if(idade < menor){
menor = idade;
}
if(salario <= 200 && sexo =='f'){
contf200 =contf200 + 1;
}
if(idade < 0){
System.out.println("fim programa");
System.out.println("Media dos salarios do grupo: R$"+ssalario/conth);
System.out.println("Menor idade: "+menor+" anos");
System.out.println("Maior idade: "+maior+" anos");
System.out.println("A quantidade de mulheres com salário até R$ 200,00 foi de: "+contf200);
System.out.println("A idade da pessoa e o sexo que possui o menor salário");
}
}
}
}[/code]
O enunciado da questão pede que o loop encerre quando a idade for negativa do jeito q está ai se ela for zero o loop iria encerrar.
Fora isso acho que não há nenhum problema +.
eu sei achar o menor salário mais não sei mostra junto a idade da pessoa q tem o maior salário e o sexo…
então só falta a idade da pessoa que possui o menor salário e o sexo…q nao estou conseguindo fazer
Cara, não seria interessante criar uma classe “Pessoa” que receba esses atributos descritos?
Ai vc armazena as informações das Pessoas em um Array.
Faz assim se ñ entender dá o toque.
[code] int menorIdade;
int menorSexo;
Double menorSalario = 9999.0;
while (idade >= 0){
System.out.println("Qual a idade do entrevistado: ");
idade = dado.nextInt();
System.out.println("Sexo<M/F>: ");
sexo = dado.next().charAt(0);
System.out.println("Salario: R$");
salario = dado.nextDouble();
if(salario<menorSalario){
menorSalario = salario;
menorSexo = sexo;
menorIdade = idade;
}[/code]
Depois tu printa as variáveis menorSalario, menorSexo e menorIdade.
consegui aqui assim da uma olhadaaa ve se ta certo?
[code]/*1) Foi feita uma pesquisa entre os habitantes de uma região. Foram coletados os dados de idade,
sexo (M/F) e salário. Faça um programa que calcule e mostre:
- a média dos salários do grupo;
- a maior e a menor idade do grupo;
- a quantidade de mulheres com salário até R$ 200,00;
- a idade e o sexo da pessoa que possui o menor salário.
Finalize a entrada de dados ao ser digitada uma idade negativa.*/
import java.util.*;
public class exercicio1 {
public static void main(String args[]){
// Seção de Declarações
char sexo = 0,menorsalsexo = 0;
int idade = 0,conth,contf200,maior,menor,menorsalidade = 0;
double salario,ssalario =0,menorsalario;
Scanner dado = new Scanner(System.in);
// Seção de Comandos
conth = 0;
contf200 = 0;
maior = 0;
menor = 200;
salario = 1;
menorsalario = 9999;
while (salario > 0){
System.out.println("Qual a idade do entrevistado: ");
idade = dado.nextInt();
System.out.println("Sexo<M/F>: ");
sexo = dado.next().charAt(0);
System.out.println("Salario: R$");
salario = dado.nextDouble();
if(salario > 0 ){
ssalario = ssalario + salario;
conth = conth +1;
}
if(idade > maior){
maior =idade;
}
if(idade < menor){
menor = idade;
}
if(salario <= 200 && sexo =='f'){
contf200 =contf200 + 1;
}
if(salario < menorsalario){
menorsalario = salario;
menorsalidade = idade;
menorsalsexo = sexo;
}
if(idade < 0){
System.out.println("fim programa");
System.out.println("Media dos salarios do grupo: R$"+ssalario/conth);
System.out.println("Menor idade: "+menor+" anos");
System.out.println("Maior idade: "+maior+" anos");
System.out.println("A quantidade de mulheres com salário até R$ 200,00 foi de: "+contf200);
System.out.println("A idade da pessoa e o sexo que possui o menor salário "+menorsalario+" foi da pessoa com idade "+menorsalidade+" do sexo "+menorsalsexo);
}
}
}
}[/code]