Ajuda com Exercício 2.17 java como programar

13 respostas
G

Olha só pessoal, estou com uma dúvida complicada aqui em um exercício, gostaria de saber se alguém poderia dar uma olhada nos códigos que vou passar e me mostrar os erros.

/*2.17 Escreva um aplicativo que insere 3 inteiros digitados pelo usuário e
 exibe a soma,a média,o produto e os números menores e maiores.*/

import java.util.Scanner;

public class Exercício2_17 {

    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        
        int numero1;
        int numero2;
        int numero3;
        int soma;
        int média;
        int produto;
        
        System.out.print("Digite o primeiro número inteiro:");
        numero1 = input.nextInt();
        
        System.out.print("Digite o segundo número inteiro:");
        numero2 = input.nextInt();
        
        System.out.print("Digite o terceiro número inteiro:");
        numero3 = input.nextInt();
        
        soma = numero1 + numero2 + numero3;
        média = (numero1 + numero2 + numero3)/3;
        produto = numero1 * numero2 * numero3;
        
        System.out.printf("A Soma é:%d\n", soma);
        System.out.printf("A Média é:%d\n",média);
        System.out.printf("O Produto é:%d\n", produto);

        if(numero1 > numero2 & numero2 > numero3)
            System.out.printf("Maiores números são:\n numero1 = %d\n numero2 = %d\n numero3 = %d\n",
                    numero1,numero2,numero3);
        if(numero2 > numero1 & numero1 > numero3)
            System.out.printf("Maiores números são:\n numero2 = %d\n numero1 = %d\n numero3 = %d\n",
                    numero2,numero1,numero3);
        if(numero3 > numero1 & numero1 > numero2)
            System.out.printf("Maiores números são:\n numero3 = %d\n numero1 = %d\n numero2 = %d\n",
                    numero3,numero1,numero2);
        if(numero1 > numero3 & numero3 > numero2)
            System.out.printf("Maiores números são:\n numero1 = %d\n numero3 = %d\n numero2 = %d\n",
                    numero1,numero3,numero2);
        if(numero2 > numero3 & numero3 > numero1)
            System.out.printf("Maiores números são:\n numero2 = %d\n numero3 = %d\n numero1 = %d\n",
                    numero2,numero3,numero1);
        if(numero3 > numero2 & numero2 > numero1)
            System.out.printf("Maiores números são:\n numero3 = %d\n numero2 = %d\n numero1 = %d\n",
                    numero3,numero2,numero1);


    }

}

Bom minha duvida é a seguinte, quando eu mando executar esse programa ele faz quase tudo certo, a não ser pelo fato que ele deveria exibir apenas os números maiores e menores dos 3 inteiros digitados, ele exibe todos os 3 inteiros, entendeu? já fiz de tudo e não consigo resolver esse problema, se puderem me ajudar, vou agradecer muito, valeu abraços… :slight_smile:

13 Respostas

progoz

Se eu passar 1,2,3 ele deveria Printar na tela apenas 1 e 3 ?

B

Olá Gilvani - Sem querer interromper seus estudos; de uma olhada no livro Head First Java(Java use a Cabeça).
Esse livro vai te conduzir direto aos fundamentos de java.
Deitel é um bom livro; mais um tanto cansativo.
Acredito que o Head First Java vai te mostrar coisas importantes de Java de maneira mais direta.
Abs.

joselmocs

há algum problema de mudar toda forma do negócio? não sei é isto que você quer, mais da uma olhada, pode ajudar...

/*2.17 Escreva um aplicativo que insere 3 inteiros digitados pelo usuário e
 exibe a soma,a média,o produto e os números menores e maiores.*/

import java.util.Scanner;
import java.util.Arrays;

public class Main {

    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);

        int soma;
        int média;
        int produto;

        int numero[] = new int[3];

        System.out.print("Digite o primeiro número inteiro:");
        numero[0] = input.nextInt();

        System.out.print("Digite o segundo número inteiro:");
        numero[1] = input.nextInt();

        System.out.print("Digite o terceiro número inteiro:");
        numero[2] = input.nextInt();

        soma = numero[0] + numero[1] + numero[2];
        média = (numero[0] + numero[1] + numero[2])/3;
        produto = numero[0] * numero[1] * numero[2];

        System.out.printf("A Soma é:%d\n", soma);
        System.out.printf("A Média é:%d\n",média);
        System.out.printf("O Produto é:%d\n", produto);

        Arrays.sort(numero);

        System.out.printf("Maior número é: %d\nMenor número é: %d", numero[2], numero[0]);
    }
}
M

O problema está na lógica das condicionais, está bem confuso e errado da uma revisada, porém o ideal para esse tipo de solução é utilizar um vetor, por exemplo:

int numeros[] = new int[3];
        int maior = 0,menor = 0;
        
        for (int i = 0; i < numeros.length; i++) {
            numeros[i] = input.nextInt();
            if (i == 0 || numeros[i] > maior) {
                maior = numeros[i];
            }
            if (i == 0 || numeros[i] < menor) {
                menor = numeros[i];
            }
        }

        System.out.println(String.format("Menor: %d, Maior: %d", menor,maior));
M

Sun Certified Java Programmer 6 ?

progoz

?

joselmocs

Certificado em Programação Orientada a Gambiarras 8)

progoz

Prefiro perguntar do que responder besteira :wink:

joselmocs

edit
hehehe

G

progoz:
Se eu passar 1,2,3 ele deveria Printar na tela apenas 1 e 3 ?

Não, ele deveria printar na tela o Maior e o Menor dentre os 3 inteiros digitados.
Não necessariamente o 1 e o 3, pode ser o 2 e o 3, ou até mesmo o 1 e o 2, entendeu?
Valeu abraços

G

baum7:
Olá Gilvani - Sem querer interromper seus estudos; de uma olhada no livro Head First Java(Java use a Cabeça).
Esse livro vai te conduzir direto aos fundamentos de java.
Deitel é um bom livro; mais um tanto cansativo.
Acredito que o Head First Java vai te mostrar coisas importantes de Java de maneira mais direta.
Abs.

Já ouvi falar desse livro, ouvi dizer que ele é muito bom, mais tem 2 problemas.
1-Ouvi dizer que a tradução dele é meio ruim e não falo Inglês.
2-Também ouvi dizer que ele é um livro para quem já tem noções de Java, que não é meu caso.

Mias muito obrigado

G
joselmocs:
há algum problema de mudar toda forma do negócio? não sei é isto que você quer, mais da uma olhada, pode ajudar...
/*2.17 Escreva um aplicativo que insere 3 inteiros digitados pelo usuário e
 exibe a soma,a média,o produto e os números menores e maiores.*/

import java.util.Scanner;
import java.util.Arrays;

public class Main {

    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);

        int soma;
        int média;
        int produto;

        int numero[] = new int[3];

        System.out.print("Digite o primeiro número inteiro:");
        numero[0] = input.nextInt();

        System.out.print("Digite o segundo número inteiro:");
        numero[1] = input.nextInt();

        System.out.print("Digite o terceiro número inteiro:");
        numero[2] = input.nextInt();

        soma = numero[0] + numero[1] + numero[2];
        média = (numero[0] + numero[1] + numero[2])/3;
        produto = numero[0] * numero[1] * numero[2];

        System.out.printf("A Soma é:%d\n", soma);
        System.out.printf("A Média é:%d\n",média);
        System.out.printf("O Produto é:%d\n", produto);

        Arrays.sort(numero);

        System.out.printf("Maior número é: %d\nMenor número é: %d", numero[2], numero[0]);
    }
}

Achei interessante seu código, mais vc está usando Arrays(nem sei para que serve) que nem aprendi ainda, tenho que fazer o exercícios usando apenas recursos que aprendi no livro, vc não acha?

G

Galera, consegui fazer e agora tah beleza!!! e o mais importante, não usei Arrays, mesmo pq eu ainda não li sobre o mesmo. Vou continuar lendo o livro aqui e qualquer duvida postarei aqui ok..eu agradeço muito e as mensagens de vcs foram de ótima ajuda..valeu!!!! como pede para a moderação fechar o tópico? pq para mim já tah resolvido.
olhem como eu fiz o exercício..

/*2.17 Escreva um aplicativo que insere 3 inteiros digitados pelo usuário e
 exibe a soma,a média,o produto e os números menores e maiores.*/

import java.util.Scanner;

public class Exercício2_17 {

    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        
        int numero1;
        int numero2;
        int numero3;
        int soma;
        int média;
        int produto;
        
        System.out.print("Digite o primeiro número inteiro:");
        numero1 = input.nextInt();
        
        System.out.print("Digite o segundo número inteiro:");
        numero2 = input.nextInt();
        
        System.out.print("Digite o terceiro número inteiro:");
        numero3 = input.nextInt();
        
        soma = numero1 + numero2 + numero3;
        média = (numero1 + numero2 + numero3)/3;
        produto = numero1 * numero2 * numero3;
        
        System.out.printf("A Soma é:%d\n", soma);
        System.out.printf("A Média é:%d\n",média);
        System.out.printf("O Produto é:%d\n", produto);

        if(numero1 > numero2 & numero1 > numero3)
            System.out.printf("O Maior é:%d\n",numero1);
        
        if(numero2 > numero1 & numero2 > numero3)
            System.out.printf("O Maior é:%d\n",numero2);
        
        if (numero3 > numero2 & numero3 > numero1)
            System.out.printf("O Maior é:%d\n",numero3);
        
        if (numero1 < numero2 & numero1 < numero3)
            System.out.printf("O Menor é:%d\n",numero1);
        
        if (numero2 < numero1 & numero2 < numero3)
            System.out.printf("O Menor é:%d\n", numero2);
        
        if (numero3 < numero2 & numero3 < numero1)
            System.out.printf("O Menor é:%d\n",numero3);
        
    }

}

Valeu abraços :thumbup:

Criado 16 de março de 2010
Ultima resposta 17 de mar. de 2010
Respostas 13
Participantes 5