2012-01-19 3 views
3

Я должен создать массив из 1000 целых чисел и написать метод, чтобы найти самый большой int, а затем распечатать его. Это то, что у меня есть до сих пор:Как создать массив с 1000 случайно генерируемых ints?

public static int findLargest(int[] numbers){ 
    int largest = numbers[0]; 
    for(int i = 1; i < numbers.length; i++){ 
     if(numbers[i] > largest){ 
      largest = numbers[i]; 
     } 
    } 
    return largest; 
} 

Во-первых, как мне создать массив с 1000 случайно генерируемыми ints? Я пробовал int[] array = new (int)(Math.random());, но я не знаю, как заставить его делать 1000 случайных чисел. Во-вторых, как мне распечатать результат? Заранее благодарю за любую помощь.

ответ

2

Подводя итоги, ваш метод findLargest выглядит хорошо - он использует правильный подход.

Чтобы создать список из 1000 номеров, вам необходимо инициализировать массив до 1000 элементов. Прямо сейчас вы инициализируете его, чтобы иметь случайное количество элементов, чего вы не хотите. После инициализации номера, чтобы быть ИНТ [] длины 1000, необходимо перебрать массив положить случайное число. Некоторые что-то вроде

int [] numbers = new int[1000]; // generate a new int[] 

for (i = 0; i < number.length; i++) { 
    numbers[i] = xxxx; // generate a random number 
} 

Вы должны, вероятно, создать какой-то init метод, который создает оригинальный массив для вас. Вы должны вызвать его в основном, получить ссылку на массив, затем передать этот массив вашему методу поиска, а затем распечатать результат.

Вы почти находитесь.

+0

Ответный заявление в порядке, это было просто плохо отступом. –

+0

И используйте Random.nextInt(). – user949300

+0

@brendan thanx ...ненавижу, когда код не отформатирован должным образом – hvgotcodes

0

Вы можете использовать класс Java Random для генерации случайных целых чисел. Затем просто заполните массив случайными целыми числами и вызовите ваш метод, передав ему массив.

// Random number generator 
Random r = new Random(); 

// Create array of 1000 ints 
int[] intArr = new int[1000]; 

// Fill array with random ints 
for (int i = 0; i < intArr.length; i++) { 
    intArr[i] = r.nextInt(); 
} 

// Print result 
System.out.println(findLargest(intArr)); 
+0

вы должны оставить что-то для ученика на самом деле. – hvgotcodes

1
int[] randArray = new int[1000]; 
for(int i = 0; i < 1000; i++){ 
    randArray[i] = (int)(Math.random()*1000); 
} 
System.out.println(findLargest(randArray)); 
+1

вы находитесь через 10 минут после того, как ** второй ** ответ будет опубликован, и ваш ответ не добавляет ничего уникального. Вы должны удалить это. – hvgotcodes

+0

По какой-то причине он продолжает печатать 100 каждый раз, когда я запускаю его ... – Brett

1

Альтернативный способ нахождения наибольшего int будет использовать java.util.Arrays.sort(int[]), а затем распечатать последний элемент массива.

0

Эта программа: -Uses Список_массивов хранить номера -Uses Коллекции для сортировки числа -Uses для петли к петле через Arraylist и заполнить его случайными числами, используя math.random(). -Примечания наибольшее число в Arraylist. Надеюсь, он ответит на ваш вопрос. Пожалуйста, дайте нам обратную связь

import java.util.ArrayList; 
import java.util.Collections; 

public class prac 
{ 
    public static void main(String args[]) 
    { 
     ArrayList<Double> MyArrayList=new ArrayList<Double>(); 


     for(int i=0;i<100;i++) 
     {    
      MyArrayList.add(Math.random()); 
     } 

     Collections.sort(MyArrayList); 


     for(int j=0;j<MyArrayList.size();j++) 
     { 
      System.out.println(MyArrayList.get(j)); 
     } 

     System.out.println("The largest Number is:"); 
     System.out.println(MyArrayList.get(-1+MyArrayList.size())); 

    } 

}

+0

Нет необходимости использовать ArrayList, если вы просто имеете дело с двойниками. Вы получите лучшую производительность от использования примитивного двойника. Не забудьте java.util.Arrays.sort() –

0

Я на самом деле имею заранее сделали класс, который я установку для нахождения наибольшего целого числа любого набора значений. Вы можете поместить этот класс в свой проект и просто использовать его в любом классе, как так:

 System.out.println(figures.getLargest(8,6,12,9,120)); 

Это возвращает значение «120» и поместить его на выходе. Вот методы исходный код, если вы заинтересованы в его использовании:

цифры общественного класса {

public static int getLargest(int...f) { 
    int[] score = new int[f.length]; 
    int largest=0; 
    for(int x=0;x<f.length;x++) { 
     for(int z=0;z<f.length;z++) { 
      if(f[x]>=f[z]) { 
       score[x]++; 
      }else if(f[x]<f[z]) { 

      }else { 
       continue; 
      } 
      if(z>=f.length) { 
       z=0; 
       break; 
      } 
     } 
    } 
    for(int fg=0;fg<f.length;fg++) { 
     if(score[fg]==f.length) { 
      largest = f[fg]; 
     } 
    } 
    return largest; 
} 

}

5
int n[] = {1,5,7,3}; 
    for(int i=0;i<n.length;i++){ 
     if(n[i] > n[0]){ 
     n[0] = n[i]; 
     } 
    } 
    System.out.println(n[0]); 
+0

Благодарим вас за хорошее простое решение. – cokedude

Смежные вопросы