Galera,
Sou iniciante em JAVA, e uma das coisas que mais odeio em programação é VETOR/ARRAY.
Estou com um exercício da faculdade para fazer.
Segue o código:
[code]package FEUC;
import java.util.Scanner;
public class Exerc4 {
/* Escreva um programa que calcula o máximo,
* o mínimo, a soma e a média de um conjunto
* de valores inteiros. O número de valores a
* introduzir deve ser também pedido ao utilizador. */
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] valores = new int[5]; // vetor de 5 posições
int maximo = 0;
int minimo = 0;
int soma;
double media;
int i;
for (i=0;i<5;i++) {
System.out.println("Informe o valor do " + (i+1) + "º valor: " );
valores[i] = scan.nextInt();
}
}
}[/code]
Minha dificuldade é fazer a comparação entre os valores de um único array.
Poderiam me dá o “caminho das pedras”?
Abs.
O que você quer comparar? por que? pra que?
O usuário vai entrar com 5 valores, e estes serão guardados no vetor.
Destes 5 valores, quero saber o maior e o menor, fazer a soma e a média.
Segue abaixo o enunciado:
/* Escreva um programa que calcula o máximo,
* o mínimo, a soma e a média de um conjunto
* de valores inteiros. O número de valores a
* introduzir deve ser também pedido ao utilizador. */
Abs,
Sabe comparar valores? maior, maior ou igual… coisas assim?
Faça mais um laço no seu sistema percorrendo o vetor e comparando os números, dentro do laço vc tbm pode fazer a soma dentro deste mesmo laço e qdo for mostrar o resultado calcula a média, simples assim!
Olhem como eu fiz:
[code] package FEUC;
import java.util.Scanner;
public class Exerc4 {
/* Escreva um programa que calcula o máximo,
* o mínimo, a soma e a média de um conjunto
* de valores inteiros. O número de valores a
* introduzir deve ser também pedido ao utilizador. */
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] valores = new int[5]; // vetor de 5 posições
int maior = 0;
int menor = 0;
int soma;
double media;
int i;
for (i=0;i<5;i++) {
System.out.println("Informe o valor do " + (i+1) + "º valor: " );
valores[i] = scan.nextInt();
}
if ((valores[1] > valores[2]) && (valores[1] > valores[3]) && (valores[1] > valores[4]) && (valores[1] > valores[5])) {
maior = valores[1];
System.out.println("O maior valor é " + valores[1]);
}
if ((valores[2] > valores[1]) && (valores[2] > valores[3]) && (valores[2] > valores[4]) && (valores[2] > valores[5])) {
maior = valores[2];
System.out.println("O maior valor é " + valores[2]);
}
if ((valores[3] > valores[1]) && (valores[3] > valores[3]) && (valores[3] > valores[4]) && (valores[3] > valores[5])) {
maior = valores[3];
System.out.println("O maior valor é " + valores[3]);
}
if ((valores[4] > valores[1]) && (valores[4] > valores[2]) && (valores[4] > valores[3]) && (valores[4] > valores[5])) {
maior = valores[4];
System.out.println("O maior valor é " + valores[4]);
}
if ((valores[5] > valores[1]) && (valores[5] > valores[2]) && (valores[5] > valores[3]) && (valores[5] > valores[4])) {
maior = valores[5];
System.out.println("O maior valor é " + valores[5]);
}
if ((valores[1] < valores[2]) && (valores[1] < valores[3]) && (valores[1] < valores[4]) && (valores[1] < valores[5])) {
menor = valores[1];
System.out.println("O menor valor é " + valores[1]);
}
if ((valores[2] < valores[1]) && (valores[2] < valores[3]) && (valores[2] < valores[4]) && (valores[2] < valores[5])) {
menor = valores[2];
System.out.println("O menor valor é " + valores[2]);
}
if ((valores[3] < valores[1]) && (valores[3] < valores[3]) && (valores[3] < valores[4]) && (valores[3] < valores[5])) {
menor = valores[3];
System.out.println("O menor valor é " + valores[3]);
}
if ((valores[4] < valores[1]) && (valores[4] < valores[2]) && (valores[4] < valores[3]) && (valores[4] < valores[5])) {
menor = valores[4];
System.out.println("O menor valor é " + valores[4]);
}
if ((valores[5] < valores[1]) && (valores[5] < valores[2]) && (valores[5] < valores[3]) && (valores[5] < valores[4])) {
menor = valores[5];
System.out.println("O menor valor é " + valores[5]);
}
media = (valores[1] + valores[2] + valores[3] + valores[4] + valores[5]) / 5;
soma = (valores[1] + valores[2] + valores[3] + valores[4] + valores[5]);
System.out.println("A média dos valores é " + media + " e a soma dos valores é " + soma);
}
}
[/code]
Tem como melhorar?
Abs,
[quote=juliomendes90]Olhem como eu fiz:
Tem como melhorar?[/quote]
Com certeza tem:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] valores = new int[5]; // vetor de 5 posições
int maior = 0;
int menor = 0;
int soma;
double media;
for (int i = 0; i < 5; i++) {
System.out.println("Informe o valor do " + (i + 1) + "º valor: " );
valores[i] = scan.nextInt();
}
// Add os primeiros valores às variáveis
menor = valores[0];
maior = valores[0];
for (int i = 0; i < valores.length(); i++) {
soma += valores[i]; //soma os valores
if (menor > valores[i]) menor = valores[i]; // Verifica e add o menor valor
if (maior < valores[i]) maior = valores[i]; // Verifica e add o maior valor
}
// Calcula a média
media = soma / valores.length;
// print para mostrar os valores, soma e média...
}
Uma obs, vc pode declarar o “int i” diretamente dentro do laço for, é uma variável a menos no scopo do método.
Por favor, não abuse do CAPS LOCK no título das suas mensagens.
[quote=fabiocortolan][quote=juliomendes90]Olhem como eu fiz:
Tem como melhorar?[/quote]
Com certeza tem:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] valores = new int[5]; // vetor de 5 posições
int maior = 0;
int menor = 0;
int soma;
double media;
for (int i = 0; i < 5; i++) {
System.out.println("Informe o valor do " + (i + 1) + "º valor: " );
valores[i] = scan.nextInt();
}
// Add os primeiros valores às variáveis
menor = valores[0];
maior = valores[0];
for (int i = 0; i < valores.length(); i++) {
soma += valores[i]; //soma os valores
if (menor > valores[i]) menor = valores[i]; // Verifica e add o menor valor
if (maior < valores[i]) maior = valores[i]; // Verifica e add o maior valor
}
// Calcula a média
media = soma / valores.length;
// print para mostrar os valores, soma e média...
}
Uma obs, vc pode declarar o “int i” diretamente dentro do laço for, é uma variável a menos no scopo do método.[/quote]
Valeu amigo, obrigado.
Beleza, obrigado. Até então, não sabia dessa regra. Abs,