meu professor pediu pra fazer essa atividade, mas não consigo ver se ta certo e tem alguns erros que nao consigo achar. algu´´em tem alguma dica??
Faça um programa que peça ao usuário para informar o tamanho do vetor (quantidade de posições). Em seguida, peça para que o usuário informe valores inteiros que serão inseridos no vetor. Após o vetor ser preenchido, mostre na tela:
o conteúdo do vetor
o maior elemento do vetor
o menor elemento do vetor
a média de todos os elementos do vetor
o vetor ordenado de forma crescente
package exc5;
import java.util.Scanner;
public class Exc5 {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
System.out.println("Digite o tamanho do vetor");
int tam = teclado.nextInt();
int vetor [] = new int[tam];
int maior = -99999, menor = 99999;
int media;
int soma = 0;
for( int i = 0; i < vetor.length; i++ ){
System.out.println(" informe valores inteiros: " );
vetor [ i ] = teclado.nextInt();
}
for( int i = 0; i < vetor.length; i++){
System.out.print(vetor[i] + " ");
}
System.out.println(" ");
for( int i = 0; i < vetor.length; i++ ){
if (vetor[i] > maior){
maior = maior + vetor [i];
if (vetor[i] > menor){
menor = menor + vetor [i];
} } }
for( int i = 0; i < vetor.length; i++ ){
if(vetor [i] < vetor [tam]) {
int aux = vetor[i];
vetor[tam]= vetor[i];
vetor[tam] = aux;
}
}
int quantidade = 0;
int media;
media = soma / tam;
System.out.println("a média de todos os elementos do vetor é " + media);
Vc usou vetor[tam] em vários lugares do seu código. Isso dá erro porque se tam for 3, os indices de vetor vão de 0 até 2 apenas.
Não tá errado, mas poderia melhorar:
Ao invés de usar os valores -99999 e 99999, vc poderia usar Integer.MAX_VALUE e Integer.MIN_VALUE
Declarar arrays como vc fez (int vetor[]) não está errado, mas por uma questão de estilo, em Java, nós colocamos os colchetes logo após o tipo e antes do nome, assim: int[] vetor.
Eu faria algo assim:
import java.util.Arrays;
import java.util.Scanner;
class Programa {
private static final Scanner scan = new Scanner(System.in);
private static int media(int[] numeros) {
int total = 0;
for (int i = 0; i < numeros.length; i++) {
total += numeros[i];
}
return total / numeros.length;
}
private static void imprime(int[] numeros) {
for (int i = 0; i < numeros.length; i++) {
System.out.print(numeros[i] + " ");
}
System.out.println();
}
public static void main(String... args) {
System.out.println("Qual a quantidade de elementos?");
final int quantidade = scan.nextInt();
final int[] numeros = new int[quantidade];
for (int i = 0; i < quantidade; i++) {
numeros[i] = scan.nextInt();
}
imprime(numeros);
// Organiza vetor
Arrays.sort(numeros);
imprime(numeros);
System.out.println("Média: " + media(numeros));
System.out.println("Menor: " + numeros[0]);
System.out.println("Maior: " + numeros[quantidade - 1]);
}
}
No caso eu não precisei criar as variáveis maior e menor como vc fez porque depois que vc organiza o vetor, vc já sabe que o primeiro elemento será o menor e o último será o maior.
Eu tirei proveito do método Arrays.sort, mas dependendo que o seu professor quer, pode ser que vc tenha que implementar algum algoritmo de ordenação que ele tenha ensinado.
EDIT: Acabei de ver que já tinham respondido esta mesma pergunta aqui: Vetor em Java. Pode ser que seja bom olhar as resposta lá também.
oii, obrigada por sua ajuda!!
eu vi a resposta da mesma pergunta mas tem algumas coisas que ainda não estudei nela, eu fiz as alteraçoes que voce falou que estava errado e que poderia melhorar. Mas continua dando erro.
ele apresenta os vetores na ordem que digitei, mas na hora de mostrar o menor, maior e media do vetor ele para de rodar durante a execuçao do programa.
estou usando o netbeans.
Pior que eu testei antes de publicar e testei agora de novo e não consegui identificar esta falha e a IDE não deveria ser relevante, deveria rodar normalmente em qualquer lugar.
Quais números vc tá usando? Eu fiz testes usando apenas números inteiros menores que 10.
tambem usei números inteiros e sempre coloco o vetor pequeno pra nao dificultar na tarefa mas sempre apresenta o erro, acho que vou mandar assim mesmo pra o professor, mesmo que esteja dando erro ele nao pode falar que eu nao tentei. kkkk Obrigada por sua ajuda!!
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
System.out.println("Digite o tamanho do vetor");
int tam = teclado.nextInt();
int [] vetor = new int[tam];
int maior = Integer.MAX_VALUE, menor = Integer.MIN_VALUE;
int media;
int soma = 0;
for( int i = 0; i < vetor.length; i++ ){
System.out.println(" informe valores inteiros: " );
vetor [ i ] = teclado.nextInt();
}
for( int i = 0; i < vetor.length; i++){
System.out.print(vetor[i] + " ");
}
System.out.println(" ");
for( int i = 0; i < vetor.length; i++ ){
if (vetor[i] > maior){
maior = maior + vetor [i];
if (vetor[i] > menor){
menor = menor + vetor [i];
} } }
for( int i = 0; i < vetor.length; i++ ){
if(vetor [i] < vetor [tam]) {
int aux = vetor[i];
vetor[tam]= vetor[i];
vetor[tam] = aux;
}
}
int qteNumerosDigitados = 0;
for (int i = 0; i < qteNumerosDigitados; i++) {
for (int j = 0; j < qteNumerosDigitados; j++) {
if (vetor[i] < vetor[j]) {
int auxiliarDeTrocas = vetor[i];
vetor[i] = vetor[j];
vetor[j] = auxiliarDeTrocas;
}
}
}
for (int i = 0; i < qteNumerosDigitados; i++) {
System.out.println(vetor[i]);
}
int quantidade = 0;
media = soma / tam;
System.out.println("a média de todos os elementos do vetor é " + media);
System.out.println("o maio valor do vetor " + maior);
System.out.println(" menor valor do vetor " + menor); System.out.println("a média de todos os elementos do vetor é " + media);
}
Scanner teclado = new Scanner(System.in);
System.out.print("Digite o tamanho do vetor: ");
int tam = teclado.nextInt();
int[] vetor = new int[tam];
int maior = Integer.MIN_VALUE;
int menor = Integer.MAX_VALUE;
double media = 0;
for (int i = 0; i < vetor.length; i++) {
System.out.print("Informe o " + (i+1) + "º valor inteiro: ");
vetor[i] = teclado.nextInt();
}
System.out.print("\nVetor digitado: ");
for (int i = 0; i < tam; i++) {
System.out.print(vetor[i] + " ");
}
for (int i = 0; i < tam; i++) {
if (vetor[i] > maior) {
maior = vetor[i];
if (vetor[i] < menor) {
menor = vetor[i];
}
}
}
System.out.println("\nMaior: " + maior);
System.out.println("Menor: " + menor);
for (int i = 0; i < vetor.length; i++) {
media += vetor[i];
}
media = media / tam;
for (int i = 0; i < tam; i++) {
for (int j = 0; j < tam; j++) {
if (vetor[i] < vetor[j]) {
int auxiliarDeTrocas = vetor[i];
vetor[i] = vetor[j];
vetor[j] = auxiliarDeTrocas;
}
}
}
System.out.println("A média de todos os elementos do vetor é: " + media);
System.out.println("O maio valor do vetor: " + maior);
System.out.println("O menor valor do vetor: " + menor);
System.out.print("Vetor ordenado: ");
for (int i = 0; i < tam; i++) {
System.out.print(vetor[i] + " ");
}
teclado.close();