Ir para conteúdo
Fórum Script Brasil
  • 0

Calcular IMC


stringtrakinas

Pergunta

No exercício da Deitel, tem um exercício que pede pra criarmos um aplicativo que calcule o IMC de uma pessoa.

Segue o meu código

 

import java.util.Scanner;
public class exe2_33
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        int pesoEmKg, altEmCm;
        double IMC;
        
        System.out.println("Seu peso em kg: ");
        pesoEmKg = input.nextInt();
        
        System.out.println("Sua altura em centímetros: ");
        altEmCm = input.nextInt();
        
        System.out.println("IMC = peso em kg / altura em metros * altura em metros ");
        
        IMC = (pesoEmKg) / (altEmCm * altEmCm);
        
        System.out.println(IMC);
        
        System.out.println("BMI VALUES");
        System.out.print("Underweight: less than 18.5 \nNormal: between 18.5 and 24.9 \nOverweight: between 25 and 29.9 ");
        System.out.print("Obese: 30 or greater");
    }

 

Mas, o resultado do IMC só aparece 0.0.

No que eu errei?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá, só não entendo o motivo de usar altura em centímetros com int ao invés de utilizar a altura com double, pois faz mais sentido.

segue um exemplo funcional.

package imc;

import java.util.Scanner;

public class IMC {
	
	private static double peso;
	private static double altura;
	
	public static void main(String[] args){
		double peso, altura;
		Scanner input = new Scanner(System.in);
		
		if(args.length<2){
			System.out.println("*****************************************");
			System.out.println("*			Calculo IMC					*");
			System.out.println("*****************************************");
			System.out.println("*Você poden usar o aplicativo usando 	");
			System.out.println("*parâmetros:*");
			System.out.println("*1) peso*");
			System.out.println("*2) altura*");
			System.out.println("*****************************************");
			System.out.println("1) Informe o peso:");
			peso=input.nextDouble();
			
			System.out.println("1) Informe a altura:");
			altura=input.nextDouble();
		}else{
			peso=Double.parseDouble(args[1]);
			altura=Double.parseDouble(args[2]);			
		}
		System.out.println("Seu IMC é: "+getImc(peso, altura));
	}
	
	public static double  getImc(double peso, double altura){
		IMC.peso=peso;
		IMC.altura=altura;
		return IMC.peso/(IMC.altura*IMC.altura);
	}

}

 

Link para o comentário
Compartilhar em outros sites

  • 0
package com.example.fitness;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class imcActivity extends AppCompatActivity {

    private EditText editHeight;
    private EditText editWeight;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_imc);

        editHeight = findViewById(R.id.edit_imc_height);
        editWeight = findViewById(R.id.edit_imc_weight);

        Button btnSend = findViewById(R.id.btn_imc_send);

        btnSend.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            if (!validate()) {
                Toast.makeText(imcActivity.this,R.string.fields_messages, Toast.LENGTH_LONG).show();
                return;
            }

            String sHeight = editHeight.getText().toString();
            String sWeight = editWeight.getText().toString();

            int height = Integer.parseInt(sHeight);
            int weight = Integer.parseInt(sWeight);

            double result = calculateImc(height, weight);
                Log.d("TESTE", "resultado " + result);

            }
        });

    }
      private double calculateImc(int height, int weight){
        // peso/(altura * altura)
          return weight / ((double) height / 100) * ((double) height / 100);

      }

        private boolean validate() {
            return (!editHeight.getText().toString().startsWith("0")
                    && !editWeight.getText().toString().startsWith("0")
                    && !editHeight.getText().toString().isEmpty()
                    && !editWeight.getText().toString().isEmpty()) ;
Editado por Carlos101010
private double calculateImc(int height, int weight){ // peso/(altura * altura) return weight / ((double) height / 100) * ((double) height / 100); Quando faço o Degub "TESTE" o meu resultado apenas aparece o peso, o programa não faz o c
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...