Peço que compreendam-me, visto que estou iniciando estudos dentro da linguagem java!!! =D
Estou desenvolvendo um método que visa receber, via parâmetro, um array com conteúdo de números inteiros. O método por sua vez retornará a soma do maior com o menor número armazenado neste array…
O código fonte que desenvolvi foi este:
public void array(int A){
int pos = 0;
int [5] vetor;
double valor_maior = 0;
double valor_menor = 0;
double soma = 0;
for(int i = 0; i < vetor.length; i++){
if(vetor[i] == null){
vetor[i] = a;
i = 6;}
else{
i++;}
for(int i = 0; i < vetor.length; i++){
for(int j = i + 1; j < vetor.length; j++){
if(vetor[j] < vetor[i]{
valor_menor = vetor[j];}
if(vetor[j] > vetor[i]{
valor_maior = vetor[j];}
}
}
soma = valor_maior + valor_menor;
return soma;}
Gostaria de ver com vocês se o mesmo esta correto…
Agradeço a costumeira ajuda dos componentes deste forúm!!!
Um abraço!!!
Rampon,
vamos lá. primeiramente, um parâmetro do tipo array é recebido como int[] A; o jeito que você fez recebe apenas um inteiro como parâmetro.
segundo, o vetor passado como parâmetro são os dados que serão manipulados, certo? então não tem necessidade de você criar outro vetor.
terceiro, o tipo de retorno do método está como void, e você está tentando retornar um valor; não vai dar certo.
eu modelaria esse algoritmo assim:
public int array(int[] A) {
int maior = A[0];
int menor = A[0];
for (int i = 1; i < A.length; i++) {
if (A[i] < menor) menor = A[i];
if (A[i] > maior) maior = A[i];
}
int soma = maior + menor;
return soma;
}
Mas tipo, o valor int que colocarei no parâmetro seria o número de posições do meu vetor, certo?
O que estou entendendo é que apenas definirei o número de posições do mesmo… e como colocarei os valores em cada posição?
já que você vai passar o tamanho como parâmetro, vamos remodelar tudo de novo rs
import java.util.Scanner;
public int array(int tamanho) {
Scanner sc = new Scanner(System.in);
int[] v = new int[tamanho]; // criando o vetor com o tamanho do parâmetro
int maior = v[0];
int menor = v[0];
// aqui você vai setar cada valor do vetor
for (int i = 0; i < v.length; i++) {
System.out.print("Digite um valor para a posição " + i + " do vetor: ");
v[i] = sc.nextInt();
}
for (int i = 1; i < v.length; i++) {
if (v[i] < menor) menor = v[i];
if (v[i] > maior) maior = v[i];
}
int soma = maior + menor;
return soma;
}
Com o Scanner, você lê um valor; neste caso, o método nextInt() faz com que você entre com um valor inteiro, mas existem outros métodos de scanner, como por exemplo o nextDouble(), nextLine() para strings, nextByte() e por aí vai.