Retornar um Array aleatório de um método fora da main

2 respostas Resolvido
jeweldae
Olá, estou com um probleminha no meu código. O exercício proposto pelo professor era: Criar um método que recebe o valor do tamanho do array e retorna um array aleatório desse mesmo tamanho com números de 0 a 100. Porém o meu código  esta retornando um número aleatório.

código:

public static void main(String[] args) {

Scanner teclado = new Scanner(<a href="http://System.in">System.in</a>);

System.out.println(Digite o tamanho do Array:);

int tam = teclado.nextInt();

int resul = aleatorio(tam);
System.out.println("Numeros: " + resul);

}

private static int aleatorio(int tam) {
    int[] array = new int[tam];
    Random gerador = new Random(tam);
    int num;
    for (num = 0; num < tam; num++) {
   tam= gerador.nextInt(100) + 1;
    }
    
    return num;

}

}

2 Respostas

Kau.Splett
Solucao aceita

Olá,

Isso está ocorrendo porque você confundiu as variáveis.
Seu código cria um Array porém não popula ele. Somente retorna um valor do tipo inteiro. Para corrigir só é necessário alterar o tipo de retorno do método “aleatorio” para um array de inteiros e popular a variável array e depois retorná-la. Com isso só se torna necessário mostrar o array de inteiros.

public static void main(String[] args) {
		Scanner teclado = new Scanner(System.in);
		System.out.println("Digite o tamanho do Array:");
		int tam = teclado.nextInt();
		int[] resul = aleatorio(tam);

		/* Exibição do array*/
		for (int i = 0; i < resul.length; i++) {			
			System.out.println("Numero na posição " + i + " = " +  resul[i]);
		}
	}

	/*Alteração do tipo de retorno do método*/
	private static int[] aleatorio(int tam) {
		int[] array = new int[tam];
		Random gerador = new Random(tam);
		int num;
		for (num = 0; num < tam; num++) {
			/* Popular o array */
			array[num] = gerador.nextInt(100) + 1;
		}

		/*Retornar a Variável*/
		return array;

	}
jeweldae

Oh, muito obrigada pela ajuda!!! :star_struck::star_struck::star_struck:

Criado 14 de maio de 2018
Ultima resposta 17 de mai. de 2018
Respostas 2
Participantes 2