Lista de Exercício

11 respostas
C

Olá galerinha, sou novo por aqui e venho trazer um probleminha que não estou conseguindo resolver neste programa que fiz. O que o programa pede é o seguinte:

Questão) Fazer um programa que recebe 3 valores não inteiros do usuário e mostra o maior deles, o menor deles e a média.

Só que não estou conseguindo botar pra rodar o programa, está dando erro na hora da impressão e ainda não compreendi o que fiz de errado, se puder me ajudar agradeço muito..segue abaixo meu código fonte.

import java.util.Scanner;
public class Q8 {
    public static void main (String[]args){
    Scanner leitor = new Scanner (System.in);
    float primeiroNumero, segundoNumero, terceiroNumero, maior, menor, media;
    
    System.out.print ("ATENÇÃO USUÁRIO!");
    System.out.print ("\nOS NÚMEROS NÃO INTEIROS DEVERÃO SER USADOS COM VIRGULAS!\n");
    System.out.println ();
    
    System.out.println ("Digite o primeiro valor: ");    
    primeiroNumero = leitor.nextFloat();
    System.out.println ("Digite o segundo valor: ");
    segundoNumero = leitor.nextFloat();
    System.out.println ("Digite o terceiro valor: ");
    terceiroNumero = leitor.nextFloat();
    
    if (primeiroNumero>=segundoNumero){
        if (segundoNumero>=terceiroNumero){
            maior=primeiroNumero;
            menor=terceiroNumero;
        }
        else{
            maior=primeiroNumero;
            menor=segundoNumero;
        }
    }
    if (segundoNumero>primeiroNumero){
        if (primeiroNumero>=terceiroNumero){
            maior=segundoNumero;
            menor=terceiroNumero;
        }
        else{
            maior=segundoNumero;
            menor=primeiroNumero;
        }
    }
    if (terceiroNumero>=primeiroNumero){
        if (primeiroNumero>=segundoNumero){
            maior=terceiroNumero;
            menor=primeiroNumero;
        }
        else{
            maior=terceiroNumero;
            menor=primeiroNumero;
        }
    }
    
    media = (primeiroNumero + segundoNumero + terceiroNumero)/3;
  
    System.out.println ("O número maior digitado foi: " + maior);
    System.out.println ("O número menor digitado foi: " + menor);
    System.out.println ("A média dos números digitados é: " + media);
  }
}

Como o usuário tem que inserir os números utilizei o import, vai perdoando alguma gafe minha no código ou no fórum, sou novo e estou me adaptando!
Desde já obrigado..

Aguardo contato de vocês..

11 Respostas

C

Tente inicializar as variaveis maior e menor:

System.out.println ("Digite o terceiro valor: ");  
    terceiroNumero = leitor.nextFloat();  
      
    maior=primeiroNumero;
    menor=primeiroNumero;
    if (primeiroNumero>=segundoNumero){  
        if (segundoNumero>=terceiroNumero){  
            maior=primeiroNumero;
A
public static void main(String[] args) {
  int i = 1;
  float maior, menor, soma = 0;
  float[] numero = new float[3];
  do{
     System.out.print("Digite o valor " + i + ": ");
     numero[i - 1] = new Scanner(System.in).nextFloat();
     soma += numero[i - 1];            
     i++;
  }while(i < 4);
  
   maior = numero[0] > numero[1] && numero[0] > numero[2] ? numero[0] : 
           numero[1] > numero[0] && numero[1] > numero[2] ? numero[1] : numero[2];        
   menor = numero[0] < numero[1] && numero[0] < numero[2] ? numero[0] : 
           numero[1] < numero[0] && numero[1] < numero[2] ? numero[1] : numero[2]; 
        
   System.out.println("\nO Maior número é o: " + maior);      
   System.out.println("O Menor número é o: " + menor);      
   System.out.println("A Média dos números é: " + (soma / numero.length));      
}
R

Aproveitando o post, alguém poderia me ajudar nessa questão?
É a única que falta pra um trabalho da faculdade. Sou iniciante em java e essa questão é bem superior ao meu conhecimento.

“Crie uma classe HugeInteger que utiliza um array de elementos de 40 digitos para armazenar inteiros com até 40 digitos cada um. Forneça os métodos inputHugeInteger, outputHugeInteger, addHugeInteger e substractHugeIntegers. Para comparar objetos HugeInteger, forneça os métodos isEqualTo, isNotEqualsTo, isGreaterThan, isLessThan, isGreaterThaOrEqualTo e isLessThanOrEqualTo - cada um desses é um método de predicado que simplesmente retorna true se a relação entre os dois HugeIntegers for verdadeira e retorna false se a relação não for verdadeira. Forneça um método do predicado isZero. Se você se sentir motivado, forneça também o método multiplyHugeIntegers, o método divideHugeIntegers e o método modulusHugeIntegers.”

Agradeço.

C

ronielpontes:
Aproveitando o post, alguém poderia me ajudar nessa questão?
É a única que falta pra um trabalho da faculdade. Sou iniciante em java e essa questão é bem superior ao meu conhecimento.

“Crie uma classe HugeInteger que utiliza um array de elementos de 40 digitos para armazenar inteiros com até 40 digitos cada um. Forneça os métodos inputHugeInteger, outputHugeInteger, addHugeInteger e substractHugeIntegers. Para comparar objetos HugeInteger, forneça os métodos isEqualTo, isNotEqualsTo, isGreaterThan, isLessThan, isGreaterThaOrEqualTo e isLessThanOrEqualTo - cada um desses é um método de predicado que simplesmente retorna true se a relação entre os dois HugeIntegers for verdadeira e retorna false se a relação não for verdadeira. Forneça um método do predicado isZero. Se você se sentir motivado, forneça também o método multiplyHugeIntegers, o método divideHugeIntegers e o método modulusHugeIntegers.”

Agradeço.

Favor leia esse topico:
http://www.guj.com.br/java/287484-gujnautas-how-to

C

Mesmo assim, o que você tem que fazer é uma classe totalmente nova com varios metodos de comparação com números inteiros “Grandes”, eu lhe aconselharia a rever os seus exercicios anteriores que você respondeu, pois você pode achar iluminação lá.

R

Obg criscky.

Não tinha olhado esse detalhe.

Att,

C
andy11x:
public static void main(String[] args) {
  int i = 1;
  float maior, menor, soma = 0;
  float[] numero = new float[3];
  do{
     System.out.print("Digite o valor " + i + ": ");
     numero[i - 1] = new Scanner(System.in).nextFloat();
     soma += numero[i - 1];            
     i++;
  }while(i < 4);
  
   maior = numero[0] > numero[1] && numero[0] > numero[2] ? numero[0] : 
           numero[1] > numero[0] && numero[1] > numero[2] ? numero[1] : numero[2];        
   menor = numero[0] < numero[1] && numero[0] < numero[2] ? numero[0] : 
           numero[1] < numero[0] && numero[1] < numero[2] ? numero[1] : numero[2]; 
        
   System.out.println("\nO Maior número é o: " + maior);      
   System.out.println("O Menor número é o: " + menor);      
   System.out.println("A Média dos números é: " + (soma / numero.length));      
}

Por que inicializar o um numero = 1?
E no caso da linha 7 do seu código fonte que você está pegando o [i - 1] no caso seria o 1 - 1? ou seria o valor que o usuário iria digitar?
E peguei seu código fonte e coloquei e está dando um erro na linha 7 no new Scanner..

A
caiocosta:
andy11x:
public static void main(String[] args) {
  int i = 1;
  float maior, menor, soma = 0;
  float[] numero = new float[3];
  do{
     System.out.print("Digite o valor " + i + ": ");
     numero[i - 1] = new Scanner(System.in).nextFloat();
     soma += numero[i - 1];            
     i++;
  }while(i < 4);
  
   maior = numero[0] > numero[1] && numero[0] > numero[2] ? numero[0] : 
           numero[1] > numero[0] && numero[1] > numero[2] ? numero[1] : numero[2];        
   menor = numero[0] < numero[1] && numero[0] < numero[2] ? numero[0] : 
           numero[1] < numero[0] && numero[1] < numero[2] ? numero[1] : numero[2]; 
        
   System.out.println("\nO Maior número é o: " + maior);      
   System.out.println("O Menor número é o: " + menor);      
   System.out.println("A Média dos números é: " + (soma / numero.length));      
}

Por que inicializar o um numero = 1?
E no caso da linha 7 do seu código fonte que você está pegando o [i - 1] no caso seria o 1 - 1? ou seria o valor que o usuário iria digitar?
E peguei seu código fonte e coloquei e está dando um erro na linha 7 no new Scanner..


Bom.. o código não está dando erro..

--------------- Saída ---------------------
Digite o valor 1: 23
Digite o valor 2: 24
Digite o valor 3: 46

O Maior número é o: 46.0
O Menor número é o: 23.0
A Média dos números é: 31.0
--------------------------------------------

Por que inicializar o um numero = 1?
Eu inicializei com 1, para iniciar a pergunta ao usuário Digite o valor 1 olhe a saída no exemplo acima..enfim..

no caso da linha 7 do seu código fonte que você está pegando o [i - 1] no caso seria o 1 - 1?
//Aqui inicia guardando o valor digitado pelo usuário na posição numero[0] do array
//Até onde sei 1 - 1 é igual a ZERO.. rs
numero[i - 1] = new Scanner(System.in).nextFloat();
E peguei seu código fonte e coloquei e está dando um erro na linha 7 no new Scanner O código não está dando erro.. copie e cole novamente...

Abraços .. até

pmlm

10
10
5

ops…

A

pmlm:
andy11x:

Bom… o código não está dando erro…

--------------- Saída ---------------------
Digite o valor 1: 23
Digite o valor 2: 24
Digite o valor 3: 46

O Maior número é o: 46.0
O Menor número é o: 23.0
A Média dos números é: 31.0


10
10
5

ops…

Ops… agora vai …rs

public static void main(String[] args) {
   int i = 1;
   float maior, menor, soma = 0;
   float[] numero = new float[3];
   do{
      System.out.print("Digite o valor " + i + ": ");
      numero[i - 1] = new Scanner(System.in).nextFloat();
      soma += numero[i - 1];            
      i++;
   }while(i < 4);
        
   maior = numero[0] > numero[1] && numero[0] > numero[2] ? numero[0] : 
           numero[1] > numero[0] && numero[1] > numero[2] ? numero[1] : 
           numero[0] == numero[1] && numero[0] > numero[2] ? numero[0] :
           numero[0] == numero[1] && numero[1] > numero[2] ? numero[1] :
           numero[2];                
   menor = numero[0] < numero[1] && numero[0] < numero[2] ? numero[0] : 
           numero[1] < numero[0] && numero[1] < numero[2] ? numero[1] :  
           numero[0] == numero[1] && numero[0] < numero[2] ? numero[0] :
           numero[0] == numero[1] && numero[1] < numero[2] ? numero[1] :
           numero[2];      

   System.out.println("\nO Maior número é o: " + maior);      
   System.out.println("O Menor número é o: " + menor);      
   System.out.println("A Média dos números é: " + (soma / numero.length));      
}

Uma outra solução também…

public static void main(String[] args) {
   int i = 1;
   float soma = 0;
   List<Float> numeros = new ArrayList<>();      
   do{
      System.out.print("Digite o valor " + i + ": ");
      numeros.add(new Scanner(System.in).nextFloat());
      soma += numeros.get(i - 1);
      i++;
   }while(i < 4);
  
   Collections.sort(numeros, new Comparator<Float>() {
      @Override
      public int compare(Float o1, Float o2) {
         return o2.compareTo(o1);
      }
   });
        
   System.out.println("\nO Maior número é o: " + numeros.get(0));        
   System.out.println("O Menor número é o: " + numeros.get(numeros.size() - 1));        
   System.out.println("A Média dos números é: " + (soma / numeros.size()));      
 }
C
andy11x:
pmlm:
andy11x:
Bom.. o código não está dando erro..

--------------- Saída ---------------------
Digite o valor 1: 23
Digite o valor 2: 24
Digite o valor 3: 46

O Maior número é o: 46.0
O Menor número é o: 23.0
A Média dos números é: 31.0


10
10
5

ops...

Ops.. agora vai ...rs
public static void main(String[] args) {
   int i = 1;
   float maior, menor, soma = 0;
   float[] numero = new float[3];
   do{
      System.out.print("Digite o valor " + i + ": ");
      numero[i - 1] = new Scanner(System.in).nextFloat();
      soma += numero[i - 1];            
      i++;
   }while(i < 4);
        
   maior = numero[0] > numero[1] && numero[0] > numero[2] ? numero[0] : 
           numero[1] > numero[0] && numero[1] > numero[2] ? numero[1] : 
           numero[0] == numero[1] && numero[0] > numero[2] ? numero[0] :
           numero[0] == numero[1] && numero[1] > numero[2] ? numero[1] :
           numero[2];                
   menor = numero[0] < numero[1] && numero[0] < numero[2] ? numero[0] : 
           numero[1] < numero[0] && numero[1] < numero[2] ? numero[1] :  
           numero[0] == numero[1] && numero[0] < numero[2] ? numero[0] :
           numero[0] == numero[1] && numero[1] < numero[2] ? numero[1] :
           numero[2];      

   System.out.println("\nO Maior número é o: " + maior);      
   System.out.println("O Menor número é o: " + menor);      
   System.out.println("A Média dos números é: " + (soma / numero.length));      
}
Uma outra solução também...
public static void main(String[] args) {
   int i = 1;
   float soma = 0;
   List<Float> numeros = new ArrayList<>();      
   do{
      System.out.print("Digite o valor " + i + ": ");
      numeros.add(new Scanner(System.in).nextFloat());
      soma += numeros.get(i - 1);
      i++;
   }while(i < 4);
  
   Collections.sort(numeros, new Comparator<Float>() {
      @Override
      public int compare(Float o1, Float o2) {
         return o2.compareTo(o1);
      }
   });
        
   System.out.println("\nO Maior número é o: " + numeros.get(0));        
   System.out.println("O Menor número é o: " + numeros.get(numeros.size() - 1));        
   System.out.println("A Média dos números é: " + (soma / numeros.size()));      
 }

Entendi!
Desculpe a demora de responder..correria, acabei ficando sem tempo de passar por aqui!
Mas valeu a ajuda..abraço!

Criado 28 de abril de 2014
Ultima resposta 5 de mai. de 2014
Respostas 11
Participantes 5