• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Где ошибка? (Java)

AcidChild

Ученик
Регистрация
6 Май 2011
Сообщения
2
Реакции
0
Баллы
0
Где ошибка? (Java)

import java.util.Locale; // использует точку в качестве разделителя
import java.util.Scanner; // считывание вводимой информации

public class TestArray { // Методы этого класса предназначены для обработки данных

public static void main(String[] args) {
Array ma = new Array ();
System.out.println("Количество искомых элементов: " +ma.SolutionofTask());
}
}

class Array{ // Класс, в котором хранятся все действия с массивом
int [] array; // одномерный массив вещественных чисел

Array(){ // Конструктор содержит код, обеспечивающий заполнение массива
Scanner scr = new Scanner (System.in); // Выделение памяти для Scanner
System.out.print ("Введите количество точек на числовой оси: "); // просьба ввести количество точек на оси
int N = scr.nextInt (); // считывание количества точек на числовой оси
array = new int [N]; // Выделение памяти для массива
scr.useLocale (Locale.US); // использование точки в качестве разделителя
for (int i = 0; i < N; i++){ // цикл по заполнению массива
System.out.print ("Введите число № " + (i+1) + ": "); // просьба ввести число от 1 до N
array = scr.nextInt (); // чтение координаты точек
} //For
System.out.print("Введите число d: ");
int d = scr.nextInt();
} // constructor MyArray()

int SolutionofTask(){ // метод решающий поставленную задачу и возвращающий значение
int leftsum = 0,result = 0, rightsum = 0;
int d = 0;
for (int i = 1; i < array.length - 1; i++) {
leftsum = 0;
rightsum = 0;

for (int j = 0; j < i; j++) {
leftsum += array[j];
}
for (int j = i + 1; j < array.length; j++) {
rightsum += array[j];
}

if (d > (Math.abs(leftsum - rightsum))){
result ++;
}
}
return result; // возвращение найденного результата
}
}
Смысл задания в определении количества элементов в массиве, разделяющих его на две части (слева и
справа от такого элемента), отличающихся по сумме элементов не более чем на
величину d (элементы массива – вещественные числа, d – вещественное число,
вводится с клавиатуры)
 
Назад
Сверху