Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сортировка вставками с убыванием сумм элементов ма 
:(
    Опции темы
ArniLand
Дата 14.10.2010, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 17.8.2008

Репутация: нет
Всего: нет



Написал программу которая сортирует элементы массива с убыванием сумм элементов массива выдает ошибку при сравнение в этой суммы индексов
Код
if(symm(i)>symm(j)
 
- то есть не правильное преобразование типов как я понимаю, подскажите как это исправить
ошибка:
method symm in class laba13.Row cannot be applied to given types
  required: int[]
  found: int

Код программы:
Код
package laba13;
import java.io.*;
import java.lang.*;
public class Row {
    public static void InsertionSort(int[] array)
{
    int i;

    for (i = 1; i < array.length; i++)
    {
        int j;
        int buf = array[i];
        for (j = i - 1; j >= 0; j--)
        {
            if(symm(i)>symm(j))
                break;
            array[j + 1] = array[j];

        }

        array[j + 1] = buf;


    }
}
    
    public static int symm (int mass[]){
    int sum =0;
    for(int a=0;a<mass.length;a++)
     {

         sum= sum + mass[a];

    }
    System.out.println("symma chisel ravna: "+sum);
    return sum;
    }
    public static void main(String arg[])
    {
        char[] mass={'1','3','5','6','8'};
        int[] copymass=new int[mass.length];


for(int a=0;a<mass.length;a++)

{
    copymass[a]=Character.digit(mass[a], 10);
}
InsertionSort(copymass);
symm(copymass);
for(int b=0;b<copymass.length;b++)
{
    System.out.println("do->"+mass[b]+"\tposle->"+copymass[b]);
}
     }

}

PM MAIL   Вверх
Antropoid
Дата 14.10.2010, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 786
Регистрация: 1.6.2006
Где: &Ukraine==Ode ssa

Репутация: 2
Всего: 16



Ты вот здесь вот
if(symm(i)>symm(j))
вызываешь метод с int'ами, а надо с массивами


--------------------
user posted image
Задыхаясь от восторга заниматься чепухой. 
PM MAIL   Вверх
ArniLand
Дата 14.10.2010, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 17.8.2008

Репутация: нет
Всего: нет



if(symm(a[i])>symm(a[i])) так вызывать с массивами?
PM MAIL   Вверх
Antropoid
Дата 14.10.2010, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 786
Регистрация: 1.6.2006
Где: &Ukraine==Ode ssa

Репутация: 2
Всего: 16



С массивами вызывать то так, но проверь имена переменных.


--------------------
user posted image
Задыхаясь от восторга заниматься чепухой. 
PM MAIL   Вверх
ArniLand
Дата 14.10.2010, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 17.8.2008

Репутация: нет
Всего: нет



вызываю так, но все равно таже ошибка. Вод код сортировки вставками и суммы
  
Код

 public static void InsertionSort(int array[])
{
    int i;

    for (i = 1; i < array.length; i++)
    {
        int j;
        int buf = array[i];
        for (j = i - 1; j >= 0; j--)
        {
            if(symm(array[i])>symm(array[j]))//візов с помощью массивов
                break;
            array[j + 1] = array[j];

        }

        array[j + 1] = buf;


    }
}
public static int symm (int mass[]){
    int sum =0;
    for(int a=0;a<mass.length;a++)
     {

         sum= sum + mass[a];

    }
    System.out.println("symma chisel ravna: "+sum);
    return sum;
    }

PM MAIL   Вверх
Antropoid
Дата 14.10.2010, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 786
Регистрация: 1.6.2006
Где: &Ukraine==Ode ssa

Репутация: 2
Всего: 16



Ой, сорри это я ошибся.
Вызов должен быть таким
symm(array) 
ты должен передавать весь массив, согласно сигнатуре твоего метода.


--------------------
user posted image
Задыхаясь от восторга заниматься чепухой. 
PM MAIL   Вверх
ArniLand
Дата 14.10.2010, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 17.8.2008

Репутация: нет
Всего: нет



тогда не пойму, вызов я сделаю. Но для реализации убывания сумм элементов массива мне нужно сравнивать суммы индексов. А что тогда мне сравнивать я не пойму?

Это сообщение отредактировал(а) ArniLand - 14.10.2010, 18:09
PM MAIL   Вверх
Antropoid
Дата 14.10.2010, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 786
Регистрация: 1.6.2006
Где: &Ukraine==Ode ssa

Репутация: 2
Всего: 16



Так переделай метод, так чтобы он принимал что-то вроде этого
if (symm(array, i) > symm(array, j))


--------------------
user posted image
Задыхаясь от восторга заниматься чепухой. 
PM MAIL   Вверх
ArniLand
Дата 14.10.2010, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 17.8.2008

Репутация: нет
Всего: нет



каким образом?
PM MAIL   Вверх
Antropoid
Дата 14.10.2010, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 786
Регистрация: 1.6.2006
Где: &Ukraine==Ode ssa

Репутация: 2
Всего: 16



 
Код

public static int symm(int mass[], int i) {
    int sum = 0;
    for (int a = i; a < mass.length; a++) {

        sum = sum + mass[a];

    }
    System.out.println("symma chisel ravna: " + sum);
    return sum;
    }



--------------------
user posted image
Задыхаясь от восторга заниматься чепухой. 
PM MAIL   Вверх
nc30
Дата 16.10.2010, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Интересующийся :)
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 24.6.2010
Где: Санкт-Петербург

Репутация: 5
Всего: 8



Цитата(ArniLand @ 14.10.2010,  14:43)
Написал программу которая сортирует элементы массива с убыванием сумм элементов массива 
...
Код программы:
Код

//...
    public static void main(String arg[])
    {
        char[] mass={'1','3','5','6','8'};
        int[] copymass=new int[mass.length];

//...
}

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

Приведенное вами условие
Код
if(symm(i)>symm(j))
 
корректно, если массив array является двумерным. В этом случае каждый его элемент является одномерным массивом и функция symm() вызывается с правильным аргументом.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0679 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.