Java: деление пар из массива
Я работаю над проектом и застрял в том, что делать дальше. Мне нужно написать программу на Java, которая принимает от пользователя десять значений и помещает эти числа в массив. Числа в массиве будут сложены вместе, и результат отобразится для пользователя. (Я получил эту часть)
Вот проблема: программа должна сравнить значения для элементов 1 и 2 (в массиве) и разделить большее число на меньшее число. Следует сравнить значения для всех нечетных / четных элементов и разделить большее на меньшее значение.
Я вообще не знаю, как это сделать. Я начал с утверждений if-else, но получаю ошибки. Сейчас он знает, что это беспорядок, но любая помощь по разделению пар массивов была бы очень полезна. Пришлите мне ссылки тоже, я не смог найти ни одной, так что я могу узнать больше.
Спасибо!
Вот что у меня так далеко:
/ import java.util.Scanner; открытый класс ExceptionHandler {
/**
* @param args the command line arguments10
* 10
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Please enter ten values:");
System.out.println();
// Input the data from the user.
int[ ] digit = new int[11];
int sum = 0;
//Declare an array
for (int i = 1; i < digit.length; i++) {
System.out.print("Value " + i + ": ");
digit[i] = in.nextInt();
sum += digit[i];
}
System.out.println("Total Values in Array:"+ sum);
// Calculate the sum and print the total
System.out.println("Would you like to divide values?");
// Fix this later
int result= digit[i];
if (digit[i] > digit[i + 1])
result = digit[i] / digit[i + 1];
else {
(digit[i + 1] / digit[i]);
}
// Compare element 0 with 1, divide larger element by smaller element
if (digit[i])> digit[i + 3])
result = digit[i] / digit[ i+ 3];
else{
(digit[i +3])/ digit[i];
}
}
4 ответа
Вы используете int для разделения. Вместо этого используйте двойное число, поскольку оно может делить два целых числа с точностью до десятичной точки.
// needed for division
double[] digit = new double[11];
for (int i = 0; i < digit.length; i++)
{
digit[i] = (double)in.nextInt;
sum += (int)digit[i];
}
//you can use this variable if needed, if not, ignore it
double[] divisionResult = new double[digit.length / 2];
for(int i = 1; i < digit.length; i += 2) {
double result = digit[i];
if (result > digit[i + 1])
result = result / digit[i + 1];
else {
result = digit[i + 1] / result;
}
divisionResult[i / 2] = result;
System.out.println(result);
}
РЕДАКТИРОВАТЬ: Я также не уверен, почему вы используете
for(int i = 1; i < 11; i++)
Поскольку вы использовали это, я использовал это аналогично выше, но фактическое соглашение должно быть:
for(int i = 0; i < 10; i++)
Не имеет большого значения, но лучше следовать хорошим правилам кодирования:)
Вы можете просто использовать for
цикл:
for (int i = 0; i < 10; i += 2) {
if (digit[i] > digit[i + 1]) {
result = digit[i] / digit[i + 1];
}
else {
result = digit[i + 1] / digit[i];
}
System.out.println(result);
}
Вы переменная i
является локальным для цикла for в вашем коде. Если вы хотите снова использовать i, вам нужно объявить его вне цикла, чтобы вы могли использовать его вне области действия цикла for. Кроме того, последнее значение "i" здесь - это последний индекс массива, который в любом случае выбрасывает массив из исключенного ограничения (другими словами, вам нужно сделать еще один цикл, в котором вы снова инициализируете "i" в 0 под вашим "Will"). Вы любите делить ценности? " Наконец, вам нужно сделать задание, так
(digit[i + 1] / digit[i]);
не является действительным утверждением. Если вы хотите записать это в результат, вам нужно написать:
result = (digit[i + 1] / digit[i]);
и если вы хотите переопределить на месте, вы можете использовать
digit[i+1] = (digit[i + 1] / digit[i]);
или же
digit[i + 1] /= digit[i];
Это должно работать, если я правильно понял, что вы хотите:
for (int i = 0; i < array.length; i = i+2) {
int firstDigit = array[i];
int secondDigit = array[i+1];
if (firstDigit > secondDigit) {
return firstDigit / secondDigit;
} else {
return secondDigit / firstDigit;
}
}
Вы перебираете массив и сравниваете первый со вторым элементом. Увеличивая значение counterVariable (i) на два, вы всегда сравниваете 1-е / 2-е, 3-е / 4-е и т. Д. Числа массива.
Надеюсь это поможет:)