Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
shukaka
4 / 4 / 2
Регистрация: 09.03.2014
Сообщений: 184
#1

Поменять местами два массива - C++

05.04.2014, 02:35. Просмотров 240. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
for(int i=0;i<100;i++)
        
for(int j=0;j<100;j++)
     {if (rl1[i]<rl2[i])
         rl2[j]=rl1[i];
         rl1[i]=rl2[j];
хочу поменять два массива местами....что не так??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2014, 02:35     Поменять местами два массива
Посмотрите здесь:

Поменять местами два элемента массива C++
Поменять местами два элемента массива C++
В фразе поменять местами два слова C++
Поменять местами два полуслова C++
Поменять Два элемента динам. массива местами C++
C++ Поменять местами два элемента в списке
C++ Односвязные списки. Поменять местами два элемента
C++ В матрице поменять местами два столбца
Поменять местами два массива C++
Поменять местами два элемента односвязного списка C++
C++ Поменять местами два элемента массива
C++ Поменять местами два элемента в массиве

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bretbas
183 / 42 / 6
Регистрация: 05.08.2013
Сообщений: 694
Завершенные тесты: 1
05.04.2014, 03:46     Поменять местами два массива #2
имя массива -> есть указатель.Почему бы вам не поменять указатели?)

C++
1
2
3
4
5
6
7
8
9
...
 
int A[10];
int B[10];
int *ptr;
ptr = A;
A = B;
B = ptr;
...
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.04.2014, 05:30     Поменять местами два массива #3
Цитата Сообщение от Bretbas Посмотреть сообщение
имя массива -> есть указатель.
Имя массива - это имя массива.
Цитата Сообщение от Bretbas Посмотреть сообщение
Почему бы вам не поменять указатели?
А почему бы вам не попробовать это скомпилировать?
igor_petrov
18 / 8 / 3
Регистрация: 26.01.2014
Сообщений: 162
05.04.2014, 06:49     Поменять местами два массива #4
Я попробовал скомпилировать, опробовал функцию memmove().
Меняет местами содержимое массивов, тестировал, работает.

Функция pr() выводит содержимое массивов.
n - размер массива.
C++
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
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <conio.h>
#include <windows.h>
 
const int n=9;
int a[n], b[n];
 
inline int pr(void) {
    printf("a: ");
    for(int i=0; i<n; i++) {
        printf("%d ", a[i]);
    }
    printf("\nb: ");
    for(int i=0; i<n; i++) {
        printf("%d ", b[i]);
    }
    printf("\n\n");
    return 0;
}
 
int main() {
    for(int i=0; i<n; i++) {
        a[i]=i;
        b[i]=i+n;
    }
 
    pr();
 
    int c[n]; //temp
 
    for(int i=0; i<n; i++) {
        c[i] = b[i];
    }
 
    int *ptrA = a;
    int *ptrB = b;
 
    //move A array to B array position
    memmove(ptrB, a, sizeof(a[0]) * n);
 
    //move B array to A array position
    memmove(ptrA, c, sizeof(c[0]) * n);
 
    pr();
 
    _getch();
    return 0;
}
Результаты при n = 9.
Миниатюры
Поменять местами два массива  
zss
Модератор
Эксперт С++
6192 / 5795 / 1877
Регистрация: 18.12.2011
Сообщений: 14,805
Завершенные тесты: 1
05.04.2014, 17:00     Поменять местами два массива #5
Bretbas, для нединамических массивов компилятор такое не позволит.
C++
1
2
3
4
5
6
    int* A=new int[10];
    int* B=new int[10];
    int *ptr;
    ptr = A;
    A = B;
    B = ptr;
Yandex
Объявления
05.04.2014, 17:00     Поменять местами два массива
Ответ Создать тему
Опции темы

Текущее время: 03:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru