Ir ao conteúdo
  • Cadastre-se

Java estou desenvolvendo um algoritmo em java que está com o seguinte erro...


Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!