2012-04-03 2 views
0

Мне нужно создать следующее в моем основном методе. Создайте массив размером 100 уд. Напишите цикл для хранения номера 150.0 - 249.0 в 100 месте.Простой массив в java

public class Lab6_2 { 
    public static void main(String[] args) { 
     double[] values; 
     values = new double [100]; 
     double i = 0; 
     for(double i = 150.0; i<249.0;i++){ 
      System.out.println(values[99]); 
     } 
    } 
} 
+1

Пожалуйста, покажите, что вы пробовали до сих пор - мне кажется невозможным поверить, что * ничего *, которое вы нашли, указывает, как создать массив из 100 элементов, по крайней мере. Также, пожалуйста, пометьте этот вопрос как домашнюю работу. –

+0

Использование цикла. , –

+0

Позволяет увидеть вашу петлю –

ответ

-2

Я не полностью знаком с java, но я знаю C++, и они очень похожи.

double array[] = new double[100]; 
double value = 150.0; 
for (int i = 0; i < 100; i++) { 
    array[i] = value+i; 
    System.out.println(value+i); 
} 

надежды, что помогает.

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

+0

Booooooooooooo. ИМО-ложный ответ в этих условиях является плохим решением суда, особенно до того, как ОП имеет возможность должным образом выполнить свою ответственность. (И в чем смысл предоставления ответа, отличного от Java? Я не спустил вниз, но я точно не виню, кто бы это ни сделал.) –

+0

что вы говорите о @DaveNewton? Я просто ответил на вопрос, насколько мог, зная, что C++ - это практически одно и то же. единственная разница здесь заключается в заявлении на печать. – anthropomorphic

+0

@MichaelDorst Я должен согласиться с Дэйвом на этом. Когда кто-то пытается изучить язык, синтаксис столь же сложный, как и логика. OP путается 'cout <<'. Кроме того, способ определения массивов отличается между Java и C++. OP также не знал бы, почему вы возвращаетесь. Не и нисходящий, но ваш ответ действительно имеет немало недостатков. –

0

Вы можете сделать это:

public static void whatever() { 
    double value = 150.0d; 
    double array[] = new double [100]; 

    for (int i = 0; i < array.length; i++) { 
     array[i] = value; 
     System.out.println("Index: " + i + " Value: " + value++); 
    } 
} 
+0

Спасибо за вашу помощь всем, но это не нравится моя заявка на печать. «недопустимый запуск выражения и«) ». Также, что такое 150.0d, d представляет double? –

+0

http://docs.oracle.com/javase/tutorial/ – stzzz1

2

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

System.out.println(Arrays.toString(array)); 

Даже если вы решите еще печатать элементы по одному в строке (как сейчас) , вы все равно должны сделать это в отдельном цикле.

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

array[i] = i + 150; 
+1

Я предполагаю, что« Arrays.toString »слишком продвинут для OP, поскольку OP еще не объявляет и печатает массив должным образом. –

0

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

Что вам нужно изменить, чтобы сохранить значения с плавающей запятой в правой позиции массива?

0

Пара неправильных действий с кодом. Вы объявляете i дважды, чего не следует делать. Также вы используете i как итератор, поэтому он должен быть int, а не double, и вы должны объявить его внутри оператора for. Он также должен начинаться с 0, а не 150, и продолжать, пока он меньше длины массива, потому что, когда длина массива равна 100, последний элемент фактически равен 99.

Также ваша домашняя работа isn Совершенно ясно, но похоже, что вы должны хранить числа 150.0 - 249.0 в каждом элементе массива? Но все, что делает ваш цикл for, это печатать последний элемент массива 100 раз, и этот элемент пуст, потому что вы никогда ничего не кладете туда.

Чтобы назначить номер в массив вы бы просто написать:

myArray[0] = somevalue; 

Это было бы назначить SomeValue к первому элементу в массиве. Но вы хотите перебирать элементы массива, поэтому вместо 0 вы бы использовали i.

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