Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2015, 21:32   #11
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Я читала википедию, но нашла вроде более наглядный пример.Вот мой код,компилятор ругается на эту строку a2[a1[i]] = a2[a1[i]] + 1;
Код:
 int[] a1 = new int[a.Length];
            for (int i = 0; i < a.Length - 1; i++)
            {
                a1[i] = (int)Math.Round(a[i]);
            }

            int i2 = a1[0]; //вспомогательный массив
            for (int i = 0; i < a.Length - 1; i++)
            {
                if (i2 < a1[i])
                    i2 = a1[i];
            }
       
            int i1=0;

          //  int[] a2 = new int[i2]; //вспомогательный массив
            int[] a2 = new int[a1.Max() + 1];

            for (int i = 0; i < a1.Max() + 1; i++)
            {
                a2[i] = 0;
            }
            for (int i = 0; i < a1.Max() + 1; i++)
            {
            
           //  i1 = Math.Abs(i1);
            // textBox3.AppendText(String.Format("{0,3:N2}", i1));
             a2[a1[i]] = a2[a1[i]] + 1; //ПРОБЛЕМА ЗДЕСЬ

        

            }
            
        
       /*     int k = 0;
           for (int j = 0; j < a.Length; j++)
            {
                while (a2[j] != 0)
                {
                    a[k] = j;
                    a2[j]--;
                    k++;
                }
            }
            */
Вот я делаю по примеру этого кода
Код:
#include <iostream>
#include <string>
 
using namespace std;
 
void CountingSort(int *a, int *c, int n, int k)
{
    for (int i = 0; i < k; i++) {
        c[i] = 0;
    }
    for (int i = 0; i < n; i++) {
        c[a[i]] = c[a[i]] + 1;
    }
    int i = 0;
    for (int j = 0; j < k; j++) {
        while (c[j] != 0) {
            a[i] = j;
            c[j]--;
            i++;
        }
    }
}
 
int main()
{
    int n;
    cin >> n;
    int *a = new int [n];
    int k;
    cout << "duapa3oH ot do k, vvedite k:\n";
    cin >> k;
    int *c = new int [k];
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    for (int i = 0; i < n; i++) {
        cout << a[i] << "\t";
    }
    cout << endl;
    CountingSort(a, c, n, k);
    for (int i = 0; i < n; i++) {
        cout << a[i] << "\t";
    }
    cout << endl;
    system("pause");
    return 0;
}
Вероника99 вне форума Ответить с цитированием
Старый 19.11.2015, 21:46   #12
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну в сообщении #6 и без википедии есть первая часть второго абзаца.

И компилятор может ругаться только на этапе компиляции на синтаксические и семантические ошибки. После запуска программы никакого компилятора уже нет, есть только исключения (exception).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 19.11.2015 в 21:50.
Alex11223 вне форума Ответить с цитированием
Старый 19.11.2015, 22:18   #13
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Ну и выкрутасы в коде
проблема у вас тут a2[a1[i]]
come-on вне форума Ответить с цитированием
Старый 19.11.2015, 22:20   #14
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну автор и так определил в чем проблема. Но проблема не в самой конструкции (такой уж алгоритм Сортировки Подсчетом), а в значениях элементов, и в сообщении #6 есть аж 2 варианта решения проблемы (простой и продвинутый).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.11.2015, 23:43   #15
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Спасибо за ответы,я уже разобралась)
Вероника99 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выход за пределы массива NFXrus Помощь студентам 10 09.12.2011 23:13
выход за пределы массива(с++) Lazy maximka Помощь студентам 2 13.11.2011 16:11
ListBox, выход текста за пределы видимости _-Re@l-_ Общие вопросы Delphi 3 31.08.2011 14:51
C++ выход за пределы строки (char) Alex11223 Помощь студентам 4 20.04.2011 20:27
C++ - выход за пределы массива kefir Помощь студентам 5 12.06.2010 14:09