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

Динамическая память.Одномерный массив. - C++

Восстановить пароль Регистрация
 
rufcska
3 / 3 / 0
Регистрация: 18.06.2011
Сообщений: 40
07.01.2012, 02:34     Динамическая память.Одномерный массив. #1
b) Динамическая память. Одномерный массив. Дан массив целых чисел. Поменять местами все
значение элементов с четными индексами с нечетными
Помогите плиз решить задачу(в си),ничего не лезет в голову...буду очень благодарен!)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2012, 02:34     Динамическая память.Одномерный массив.
Посмотрите здесь:

C++ Динамическая память
C++ Динамическая память.
C++ Динамическая память
C++ Динамическая память
Динамическая память C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13941 / 8772 / 1220
Регистрация: 24.12.2010
Сообщений: 15,881
07.01.2012, 02:42     Динамическая память.Одномерный массив. #2
C
1
2
3
4
5
6
7
int *M = (int *)malloc(2*n*sizeof(int));
// Заполняете массив ...
for(i=o; i<n; i+=2) {
  tmp = M[i];
  M[i] = M[i+1] ;
  M[i+1] = tmp;
}
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
07.01.2012, 09:26     Динамическая память.Одномерный массив. #3
Цитата Сообщение от Байт Посмотреть сообщение
for(i=o; i<n; i+=2) {
for(i = 0; i < n; i+=2)
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16821 / 5242 / 318
Регистрация: 30.03.2009
Сообщений: 14,118
Записей в блоге: 26
07.01.2012, 10:07     Динамическая память.Одномерный массив. #4
Если в массиве 1 элемент, то программа попытается поменять местами M[0] и M[1] и вылезет за границу массива. Как и для любого нечётного количества элементов
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
07.01.2012, 10:25     Динамическая память.Одномерный массив. #5
Цитата Сообщение от Evg Посмотреть сообщение
Если в массиве 1 элемент, то программа попытается поменять местами M[0] и M[1] и вылезет за границу массива. Как и для любого нечётного количества элементов
Не вылезет. У него предусмотрено на этот случай создание массива размером n*2. А вот сам обмен не до конца отработан, но он сам все исправит.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16821 / 5242 / 318
Регистрация: 30.03.2009
Сообщений: 14,118
Записей в блоге: 26
07.01.2012, 10:49     Динамическая память.Одномерный массив. #6
Цитата Сообщение от valeriikozlov Посмотреть сообщение
У него предусмотрено на этот случай создание массива размером n*2
Ой, не заметил. Только в от в условии задачи ничто про чётное количество элементов массива не сказано

Добавлено через 35 секунд
Цитата Сообщение от valeriikozlov Посмотреть сообщение
но он сам все исправит.
"он" - это кто?
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
07.01.2012, 12:05     Динамическая память.Одномерный массив. #7
Цитата Сообщение от Evg Посмотреть сообщение
"он" - это кто?
тот кто написал - Байт
Байт
 Аватар для Байт
13941 / 8772 / 1220
Регистрация: 24.12.2010
Сообщений: 15,881
07.01.2012, 12:56     Динамическая память.Одномерный массив. #8
Исправленному верить
C
1
2
3
4
5
6
7
int *M = (int *)malloc(2*n*sizeof(int));
// Заполняете массив ...
for(i=o; i<2*n; i+=2) {
  tmp = M[i];
  M[i] = M[i+1] ;
  M[i+1] = tmp;
}
Конечно, массив четной размерности 2n. Для нечетной не понятно, кого с чем менять. Или как-то надо уточнять условие
rufcska
3 / 3 / 0
Регистрация: 18.06.2011
Сообщений: 40
14.01.2012, 03:24  [ТС]     Динамическая память.Одномерный массив. #9
Всмысле уточнять? вроде все написано норм)
а1,а2,а3...аn вот надо их поменять местами четные на нечентые
1 ,2 ,3 ,4 а надо 2 ,1 ,4 ,3
а1,а2,а3,а4 а2,а1,а4,а3
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2012, 04:14     Динамическая память.Одномерный массив.
Еще ссылки по теме:

C++ Динамическая память [new]
Динамическая память C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
14.01.2012, 04:14     Динамическая память.Одномерный массив. #10
Цитата Сообщение от Байт Посмотреть сообщение
Для нечетной не понятно, кого с чем менять
Если не сказано, что делать с последним элементом нечётной последовательности, думаю, самое правильное - ничего с ним не делать
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
void swap_neighbours(int * arr, size_t size){
    if ( size > 1 ){
        *arr ^= *(arr+1);
        *(arr+1) ^= *arr;
        *arr ^= *(arr+1);
        swap_neighbours(arr+2, size-2);
    }
}
 
void random_fill(int * arr, size_t size, int min, int max){
    while ( size-- )
        *arr++ = rand() % ( max - min + 1 ) + min;
}
 
void dump(const int * arr, size_t size){
    while ( size-- )
        printf("%d%c", *arr++, ( size ) ? ' ' : '\n');
}
 
int main(void){
    int * arr;
    size_t size;
    
    srand(time(NULL));
 
    while ( printf("Size of array: ") && scanf("%u", &size) == 1 && size ){
        if ( ! ( arr = malloc(sizeof(int) * size) ) ){
            perror("malloc");
            exit(1);
        }
        
        random_fill(arr, size, 0, 9);
        printf("Before: ");
        dump(arr, size);
        swap_neighbours(arr, size);
        printf("After:  ");
        dump(arr, size);
        
        free(arr);
    }
    
    exit(0);
}
Yandex
Объявления
14.01.2012, 04:14     Динамическая память.Одномерный массив.
Ответ Создать тему
Опции темы

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