Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблемка в перестановке элементов массива / 3 сообщений из 3, страница 1 из 1
24.04.2006, 22:57
    #33687351
Zeap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка в перестановке элементов массива
Вот такая вот проблемка у меня есть два массива a[n] и x[n].
Массив a[n] я сортирую по возрастанию (простым методом пузырька)
а во втором массиве x[n] мне нужно в соответствии с массивом а[n]
переставлять элементы: например
в массиве а[n] числа 9 8 7 6 5 4
а в массиве x[n] числа 1 2 3 4 5 6
после сортировки а[n] по возрастанию будет 4 5 6 7 8 9
тогда в x[n] должно получиться так 6 5 4 3 2 1
Вот то что я написал
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
        int a[ 10 ] = { 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 };
        int x[ 10 ];
        int Temp, TempX;
        int n =  10 ;
        for (int k =  0 ; k <  10 ; k++)
        {
                x[k] = k;
        }
        for(int j =  0 ; j <= n- 1 ; j++)
        {
                for(int i =  0 ; i <= n-j; i++)
                {
                        if( a[i] > a[i +  1 ] )
                        {
                                Temp = a[i];
                                a[i] = a[i +  1 ];
                                a[i +  1 ] = Temp;
                                TempX = x[i];
                                x[i] = x[i +  1 ];
                                x[i +  1 ] = TempX;
                        }

                }
        }

        for (int i =  0 ; i <  10 ; i++)
        {
                cout << a[i] << " - " << x[i] << " - " << '\n';
        }
        getch();
Результатом написаного должно по идее получиться:
1 - 10
2 - 9
3 - 8
.....
только вот ругается он на строчку где идет перестановка в массиве x[n]
что я не правильно такого написал?

Заранее спасибо!
...
Рейтинг: 0 / 0
25.04.2006, 08:50
    #33687632
cadge
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка в перестановке элементов массива
ну программа твоя, по крайней мере запускается (ну у меня точно), но вот результат она выдает левый.
По моему скромному мнению, тебе легче было бы сделать через двумерный массив, а если нужно, то потом выделить из него тебе нужный. Ну или сделать массив структур из двух чисел.
...
Рейтинг: 0 / 0
25.04.2006, 09:04
    #33687661
cadge
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемка в перестановке элементов массива
Да и чтобы было
1 - 10
2 - 9
3 - 8
сделать нужно так.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
#include "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace std;
void main()
{
int a[ 10 ] = { 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 };
        int x[ 10 ];
        int Temp, TempX;
        int n =  10 ;
        for (int k =  0 ; k <  10 ; k++)
        {
                x[k] = k+ 1 ;
        }
        for(int j =  1 ; j < n; j++)
        {
                for(int i =  0 ; i < n-j; i++)
                {
                        if( a[i] > a[i +  1 ] )
                        {
                                Temp = a[i];
                                a[i] = a[i +  1 ];
                                a[i +  1 ] = Temp;
                                TempX = x[i];
                                x[i] = x[i +  1 ];
                                x[i +  1 ] = TempX;
                        }

                }
        }

        for (int i =  0 ; i <  10 ; i++)
        {
                cout << a[i] << " - " << x[i] << '\n';
        }
        getch();
}
Она нормально работает
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблемка в перестановке элементов массива / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]