• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Преобразовать массив

  • Автор темы Автор темы Evgen121
  • Дата начала Дата начала

Evgen121

Ученик
Регистрация
1 Май 2019
Сообщения
1
Реакции
0
Баллы
0
Преобразовать массив

Есть массив {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.
Преобразовать согласно последовательности b0, bn, b1, bn+1,… , bn-1, b2n-1.
Должно выводить 0 5 1 6 2 7 3 8 4 9

Программа выводит 0 5 1 6 1 7 6 8 1 9

Не могу понять что происходит с t:

Код:
#include "pch.h"
#include <iostream>

using namespace std;

int n = 5;
int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int t = a[0];

int main()
{
	for (int i = 0; i < n * 2; i++) {
		cout << a[i] << " ";
	}
	cout << endl;
	int c = n;
	for (int i = 0; i < n; i++) {
		a[i*2] = t;
		t = a[i + 1];
		a[i*2 + 1] = a[c];
		c++;
	}
	for (int i = 0; i < n*2; i++) {
		cout << a[i] << " ";
	}
}
 
Полностью выдать программу не могу, бо паскалист, на Сях не пишу, но ошибку исправить помогу.
Дело в том, что при формировании нового массива Вы используете вместо исходных УЖЕ РАНЕЕ ПРЕОБРАЗОВАННЫЕ компоненты. Поэтому нужно ввести отдельный идентификатор для нового массива. Обозначим его, например, b. Тогда вместо
Код:
    for (int i = 0; i < n; i++) {
         a[i*2] = t;
         t = a[i + 1];
         a[i*2 + 1] = a[c];
         c++;
     }
     for (int i = 0; i < n*2; i++) {
         cout << a[i] << " ";
     }
следует написать:
Код:
    for (int i = 0; i < n; i++) {
         [COLOR=Red][B]b[/B][/COLOR][i*2] = t;
         t = a[i + 1];
         [COLOR=Red][B]b[/B][/COLOR][i*2 + 1] = a[c];
         c++;
     }
     for (int i = 0; i < n*2; i++) {
         cout << [COLOR=Red][B]b[/B][/COLOR][i] << " ";
     }
И всё будет тип-топ.
 
Назад
Сверху