Código peso e e altura

10 respostas
Nycolas_T

olá pessoal preciso de ajuda nesse código aqui

public static void main(String[] args) {
    // 1 posição
    int c;
    String[] nome = new String[1];
    Double[] h = new Double[2];   
    Double[] p = new Double[2];
   double mh;
   double mp;
   int aux, aux2;
   Scanner console = new Scanner( System.in );
   c = Integer.parseInt(console.nextLine());

   while (c < 2) {
System.out.println(c = c + 1);
   }   
System.out.print("NOME: ");
nome[c] =console.nextLine(); // String
System.out.print("PESO: ");
p[c] = Double.parseDouble(console.nextLine());
System.out.print("ALTURA: ");
h[c] = Double.parseDouble(console.nextLine());

mh =  Double.parseDouble(console.nextLine()); // double
mp =  Double.parseDouble(console.nextLine()); // double
aux = Integer.parseInt(console.nextLine());
aux2 = Integer.parseInt(console.nextLine());

if (h[c] > mh) {
if ( mh == h[c])
if (aux == c)

if (p[c] > mp) {
if (mp == p[c])
if (aux2 == c))
}
}

System.out.println("O maior peso é de "+ nome[aux2]+ " pesando: "+ mp+ "Kg"); 
System.out.println("A maior altura é de "+ nome[aux]+ "medindo: "+ mh+ "m");

}
}

só tem um errinho que e
essas duas ultimas barras, elas dão muito erro e ja tentei tira colocar, fiz muita coisas mais ainda nada vocês poderiam me ajudar por favor ? agradeço desde já

if (aux2 == c))
    }
    }

10 Respostas

J

Você abriu 6 blocos if e só fechou 2???

Nycolas_T

sim, por quer no código que eu estava seguindo como orientação ele só fecha esses dois por quer e um if dento de outro, que em Portugol que eu estava seguindo estava assim .

var
    c: inteiro
    nome:vetor[1..2]de caractere
    h: vetor[1..2]de real
    p: vetor[1..2]de real
    mh: real
    mp: real
    aux, aux2: inteiro
inicio
     enquanto (c < 2) faca
     c <- c + 1
     escreva("NOME: ")
     leia(nome[c])
     escreva("PESO: ")
     leia(p[c])
     escreva("ALTURA: ")
     leia(h[c])
     limpatela
       Se(h[c] > mh) entao
       mh <- h[c]
       aux <- c
        Se(p[c] > mp) entao
       mp <- p[c]
       aux2 <- c
        fimse
       fimse
     fimenquanto
     escreval("O maior peso é de ", nome[aux2], " pesando: ", mp, "Kg")
     escreval("A maior altura é de ", nome[aux], "medindo: ", mh, "m")
fimalgoritmo
J

não sei isso de portugal, mas se você abriu um bloco if deve fechar em algum lugar.
logico que vai dar erro assim.

Nycolas_T

mesmo assim ele continua dando erro na hora da execução

staroski

Você tem que prestar atenção no código que está reescrevendo
Você pegou esse se abaixo:

Se(h[c] > mh) entao
    mh <- h[c]
    aux <- c

E transformou em 3 if:

if (h[c] > mh) {
    if ( mh == h[c])
        if (aux == c)

Isso está errado, deveria ser assim:

if (h[c] > mh) {
    mh = h[c];
    aux = c;
}
J

mh <- h[c]

isso é um tipo de atribuição nesse tal de portogal ???

Nycolas_T

bem ainda da erro, que e o seguinte

run:
3
NOME: v
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
	at exercício_113.Exercício_113.main(Exercício_113.java:66)
C:\Users\NYCOLAS\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 5 segundos)

e o código atual e esse aqui

public static void main(String[] args) {
            // 1 posição
            int c;
            String[] nome = new String[1];
            Double[] h = new Double[2];   
            Double[] p = new Double[2];
           double mh;
           double mp;
           int aux, aux2;
           Scanner console = new Scanner( System.in );
           c = Integer.parseInt(console.nextLine());

           while (c < 2) {
    System.out.println(c = c + 1);
           }   
    System.out.print("NOME: ");
    nome[c] = console.nextLine(); // String
    System.out.print("PESO: ");
    p[c] = Double.parseDouble(console.nextLine());
    System.out.print("ALTURA: ");
    h[c] = Double.parseDouble(console.nextLine());

    mh =  Double.parseDouble(console.nextLine()); // double
    mp =  Double.parseDouble(console.nextLine()); // double
    aux = Integer.parseInt(console.nextLine());
    aux2 = Integer.parseInt(console.nextLine());
    
    if (h[c] > mh) {
    mh = h[c];
    aux = c;
}

    if (p[c] > mp) {
    mp = p[c];
    aux2 = c;
}
 

    System.out.println("O maior peso é de "+ nome[aux2]+ " pesando: "+ mp+ "Kg"); 
    System.out.println("A maior altura é de "+ nome[aux]+ "medindo: "+ mh+ "m");

     
    }
    }

aquele erro de cima e quando executa o código

Nycolas_T

e uma Operação recebe

a <- b

staroski

Portugol, não portugal.
A expressão x <- y, é lida como x recebe y, ou seja, o <- é o operador de atribuição.
No Brasil geralmente introdução à programação e algoritmos são ensinados em portugol.

TerraSkilll

Duplicado de Peso e altura .

Criado 19 de maio de 2019
Ultima resposta 20 de mai. de 2019
Respostas 10
Participantes 4