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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2014, 12:26   #1
NYork
Пользователь
 
Регистрация: 17.11.2014
Сообщений: 35
По умолчанию Ребят, укажите, где у меня ошибка. С++

Задание такое.
Преобразовать массив таким образом, что бы в первой его половине располагались элементы, стоявшие в не четных позициях, а во второй половине, элементы стоявшие в четных.

код такой, но он не правильно располагает элементы, т.е. как то в разброс.


Код:
	double tmp;
	for (i = 0; i<n; i++)
	{    
		for (j = 0; j < n; j++)
		{
			if (j % 2 != 0)
			{  
				tmp = arr[i];                       
				arr[i] = arr[j];
				arr[j] = tmp;
				tmp = arr[i];
			}
		} 
		if (i % 10 == 0)
			cout << endl;
			cout << setw(7) << arr[i];
	}

Последний раз редактировалось Stilet; 16.12.2014 в 12:35.
NYork вне форума Ответить с цитированием
Старый 16.12.2014, 12:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Может проще будет создать новый массив, его наполнить, а потом перенести наполненное в исходный?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.12.2014, 14:17   #3
NYork
Пользователь
 
Регистрация: 17.11.2014
Сообщений: 35
По умолчанию

Нет, нужно старый массив правильно переставить. В итоге на экране будет 2 массива, исходный и перестановленный.
NYork вне форума Ответить с цитированием
Старый 16.12.2014, 14:21   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Т.е. дополнительный массив запрещено?
Хм... Тогда у меня идей нет. По крайней мере вот так сходу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.12.2014, 14:48   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Код:
const int n = 9;
int a[n];
for (int i = 0; i < n; ++i)
    a[i] = i + 1;
int i = 1, j = (n - 1) >> 1 << 1;
while (i < j) {
    int tmp = a[i];
    a[i] = a[j];
    a[j] = tmp;
    i += 2;
    j -= 2;
}
for (int i = 0; i < n; ++i)
    cout << setw(7) << a[i];
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 16.12.2014 в 15:28.
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MathCad где у меня ошибка аннна22 Помощь студентам 1 07.04.2014 07:21
Ребят,программа правильно написана,только 1 ошибка ,не могу понять где. Anne Помощь студентам 3 09.01.2012 22:17
Работа с записью в файлы, циклы. Укажите где ошибка! Bulkin Помощь студентам 1 24.11.2010 12:44
Fortran где у меня ошибка???? Bezo Помощь студентам 3 18.06.2010 00:06
где-то ошибаюсь, а где не пойму!укажите ошибку <<Katushka>> Общие вопросы C/C++ 2 15.05.2010 11:41