Ir ao conteúdo

Posts recomendados

Postado
public static void main(String args[]) {
		java.util.Scanner teclado = new java.util.Scanner(System.in); 
		double ano,qtd=0, menos25=0, pmenos25=0, pmais25=0,mulheres=0,homens=0, smartphones=0, smartphonen=0, mais25=0;
		char sexo='m', smartphone='s';
		double pmenos25smartphones=0, pmais25smartphonen=0, phomens=0,pmulheres=0;
		int m=0,f=0, s=0, n=0;
		String nome = "sexo";
		System.out.println("Ano de Nascimento:");
		ano = teclado.nextInt();
		while(ano>0){
			System.out.println("Sexo (m/f):");
			sexo = teclado.next().charAt(0);
			System.out.println("Está associado ao uso de smartphone?(s=sim, n=não)");
			smartphone = teclado.next().charAt(0);
			qtd = qtd+1;
			if( (2022-ano)<25 ) {
				menos25 = menos25+1;	
			}
			if( (2022-ano)>=25 ) {
				mais25 = mais25+1;	
			}
			if(sexo=='f'){
				mulheres = mulheres+1;
			}
			if(sexo=='m'){
				homens = homens+1;
			}	
			if(smartphone=='s'){
				++smartphones;
			}
			if(smartphone=='n'){
				++smartphonen;
			}
			System.out.println("Ano de nascimento");
			ano = teclado.nextInt();
		}		
		phomens = homens/qtd*100;
		pmulheres = mulheres/qtd*100;
		pmenos25 = pmenos25/qtd*100;
		pmais25 = pmais25/qtd*100;
		pmenos25smartphones = smartphones+pmenos25/qtd*100;
		pmais25smartphonen = smartphones+pmais25/qtd*100;
		System.out.println("A porcentagem de motoristas do sexo masculino é"+phomens);
		System.out.println("A porcentagem de motoristas do sexo feminino é"+pmulheres);
		System.out.println("A porcentagem de motoristas abaixo dos 25 anos é"+pmenos25);
		System.out.println("A porcentagem de motoristas acima dos 25 anos é"+pmais25);	
		System.out.println("A porcentagem de motoristas abaixo dos 25 anos usando celular é"+pmenos25smartphones);
		System.out.println("A porcentagem de motoristas acima dos 25 anos usando celular é"+pmais25smartphonen);			
	}	
}

 

  • Obrigado 1
Postado
Em 24/01/2022 às 17:59, jaovituroriz disse:

@Flávio Pedroza poise, só que as porcentagens ficam tudo 0.0, sabe como resolve?

 

1- Ele fica repetindo as mesmas coisa porque está dentro de loop com uma condicional dizendo, se o ano da pessoa for maior que zero então faça esse loop. Como o ano da pessoa nasceu sempre será maior que zero então o loop é infinito rsrs. Use um If aninhado, eu acho que é melhor nesse caso.

2- O motivo de as porcentagens estarem todas zeradas é que você colocou o sysout fora da função que calcula elas. Não sei como é em outras linguagens, mas no java o valor de uma variável só é válido enquanto estiver dentro do método/função. A menos que seja do tipo static, nesse caso eu acho que ele armazena o valor mesmo quando o código da função chegue ao fim. Caso contrário, o valor é zerado quando a função termina, ou então é mantido o valor inicial que você forneceu lá em cima, que no caso é zero mesmo.

Porém não recomendo deixar tudo como static, apesar de ser tentador, pode gerar problemas e também não é necessário para esse tipo de programa.

  • 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!