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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2013, 16:43   #1
bilochka
Пользователь
 
Регистрация: 10.02.2013
Сообщений: 12
По умолчанию С++ использование указателей при работе массива

помогите пожалуйста написать программу
организовать введение данных в массив, обработку элементов и вывод результатов, используя указатели.
задание:
Дано натуральное число N (N – четное) и одномерный массив A1, A2, …, AN логических элементов. Сделать циклический сдвиг первой половины массива справа налево, а второй - слева направо
bilochka вне форума Ответить с цитированием
Старый 13.02.2013, 15:02   #2
rlib
Форумчанин
 
Аватар для rlib
 
Регистрация: 22.05.2012
Сообщений: 352
По умолчанию

Код:
#include <stdio.h>
#define N 6
void shl( int *p, int n, int k ) {
/*	
	Shift left elements in array

	int *p: pointer to the array
	int n: number of elements in the array
	int k: number of positions to shift
*/
	int *pa = p+n-1;
	int t, s, j, i, c;
	i = 0;
	t = *pa;
	for (c=0; c<n; ++c) {
		j = (i+k)%n; 
		s = *(pa-j); 
		*(pa-j) = t; 
		t = s; 
		i = j; 
	}
}

void shr( int *p, int n, int k ) {
/*	
	Shift right elements in array

	int *p: pointer to the array
	int n: number of elements in the array
	int k: number of positions to shift
*/
	int t, s, j, i, c;
	i = 0;
	t = *(p+i);
	for (c=0; c<n; ++c) {
		j = (i+k)%n; 
		s = *(p+j); 
		*(p+j) = t; 
		t = s; 
		i = j; 
	}

}

void printArray(int *p, int n) {
	int i;
	for (i=0; i<n; i++)
		printf("%d\n", *p++);
}
int main() {
	
	int a[N] = {1,2,3,4,5,6};
	printArray(a, N);
	shl(a, N/2, 1); 
	shr(a+N/2,N/2,1); 
	printArray(a, N);
	return 0;
}
rlib вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ использование указателей при работе массива bilochka Помощь студентам 1 10.02.2013 17:10
Замена указателей на Локал.Перем при работе функции в потоке Pcrepair Общие вопросы Delphi 1 17.01.2013 14:16
использование указателей при рааботе с массивами chainiksi Общие вопросы C/C++ 1 28.11.2011 16:28
Использование указателей и функций(С++) zizu Помощь студентам 6 23.06.2010 18:36
Использование указателей (*) Crazy_caramel Помощь студентам 0 16.12.2009 22:06