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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2013, 13:11   #1
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию указатели

Дан массив целых чисел. Воспользовавшись указателями, поменяйте местами элементы массива с четными и нечетными индексами (т.е. те элементы массива, которые стоят на четных местах, поменяйте с элементами, которые стоят на нечетных местах).
mixon-21 вне форума Ответить с цитированием
Старый 24.05.2013, 13:14   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Хорошая фраза - "воспользуйтесь указателями" (дописать в программу void* some_pointer=NULL - всё, типа воспользовались).

Без неё решить можете?
Abstraction вне форума Ответить с цитированием
Старый 24.05.2013, 13:17   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

А что, если в массиве нечётное количество элементов?
Вадим Мошев вне форума Ответить с цитированием
Старый 28.05.2013, 17:29   #4
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Алгоритм:
Проходите по массиву и меняете текущий элемент с последующим...

Насчет использования указателей:
P.S - (int arr[] = {1, 2, 3, 4}. Здесь: arr - указатель на область памяти размером (4*sizeof(int)). arr[1] - указатель на 2-й элемент в массиве. Т.е вы уже работаете с указателями - разыменовываете их, помещаете в них адрес некой области в памяти и т.п...) или я чего-то недопонял?
Igor95 вне форума Ответить с цитированием
Старый 28.05.2013, 17:32   #5
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

Код:

#include<iostream>
#include<time.h>
#include <stdlib.h>
using namespace std;
void mas1(int A[]){
srand(time(NULL));
for(int i=0;i<10;i++){
A[i]=rand()%100;
cout<<A[i]<<'\t';
}
cout<<'\n';
}

void main(){
const int size=10;

int A[size];

mas1(A);
}


подскажите как поменять местами????

Последний раз редактировалось mixon-21; 28.05.2013 в 17:45.
mixon-21 вне форума Ответить с цитированием
Старый 28.05.2013, 17:47   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Существует функция std::swap().
Abstraction вне форума Ответить с цитированием
Старый 28.05.2013, 17:51   #7
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

вот эта???????

Код:
  void swap(int*px, int*py)
  {
         int tmp;
 
         temp = *px;
         *px = *py;
         *py = temp;
  }
mixon-21 вне форума Ответить с цитированием
Старый 28.05.2013, 18:00   #8
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
вот эта???????
Нет. Вот та, которая по ссылке. Стандартная. Обратите внимание на примеры.
Можно, конечно, и эту - тоже рабочий вариант.
Abstraction вне форума Ответить с цитированием
Старый 28.05.2013, 18:09   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Точнее:
Код:
void
swap(int *px, int *py)
{
    int tmp = *px;
    *px = *py;
    *py = tmp;
}
(А то там были разные переменные tmp и temp)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 28.05.2013, 19:05   #10
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

Код:
void mas1(int *A,int x, int temp){
	srand(time(NULL));
	for(int i=0;i<10;i++){
		A[i]=rand()%100;
		cout<<A[i]<<'\t';
	}
	for(int i=0;i<10;i++){
	
	temp=A[i];
	x=*A;
	*A=temp;
	cout<<*A<<'\t';
	}
}

void main(){
	const int size=10;
	int A[size];
mas1(A,0,10);
}

Подскажите что не так????
mixon-21 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатели в с++! Pm@ Общие вопросы C/C++ 15 20.04.2017 19:59
Указатели Кудаив Помощь студентам 5 27.05.2012 00:44
Указатели Mighty Помощь студентам 1 24.10.2009 18:01
Указатели Paul_AG Общие вопросы C/C++ 5 03.07.2009 14:22
[C] массивы, указатели, двойные указатели. Iggel Общие вопросы C/C++ 5 05.05.2009 12:39