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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2017, 21:21   #1
GroZz
Новичок
Джуниор
 
Регистрация: 04.12.2017
Сообщений: 4
По умолчанию Массивы С++

Добрый вечер, задание вроде не тяжелое, ну не знаю с чего начать. Задание: Дано два одномерных массива, дополнить второй массив начиная со второго номера, тремя последними элементами первого массива
GroZz вне форума Ответить с цитированием
Старый 04.12.2017, 21:28   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

У вас два ряда кубиков. И вам говорят - возьми три последних из первого и положи, начиная со второго места, во второй ряд. Что вы будете делать?
p51x вне форума Ответить с цитированием
Старый 04.12.2017, 21:44   #3
GroZz
Новичок
Джуниор
 
Регистрация: 04.12.2017
Сообщений: 4
По умолчанию

Ну скорее всего возьму подвину кубики во втором ряду чтобы хватило места для того чтобы перенести кубики с первого ряда
GroZz вне форума Ответить с цитированием
Старый 04.12.2017, 22:23   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну так вот вам и начало:
1. Взять два ряда кубиков / например, ввести с клавиатуры
2. Подвинуть второй ряд так, чтобы хватило места.

Заметьте тут и программирования не было, а вы сразу не знаю ч чего начать.
p51x вне форума Ответить с цитированием
Старый 04.12.2017, 23:00   #5
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Разбивай задачу на части и решай по чуть-чуть...
- Что там первое?
- "Дано два одномерных массива".
- Ну вот и создай два массива и выведи их содержимое на экран.
При этом массивы можешь заполнить как угодно: ввод с клавиатуры, случайными числами, жёстко задать в программе...

Потом посмотрим, что тебе делать дальше...
___________________________________ _______________

Полезно будет тебе решить какой-нибудь пример "на бумаге" (чтобы потом сравнивать с машинным расчётом).
ura_111 вне форума Ответить с цитированием
Старый 05.12.2017, 09:52   #6
GroZz
Новичок
Джуниор
 
Регистрация: 04.12.2017
Сообщений: 4
По умолчанию

int main()
{
srand(time(NULL));
const int n = 10;
int arr[n], arr2[n];
for (int i = 0; i < n; i++)
{
arr[i] = rand() % 20;
arr2[i] = rand() % 20;
}

for (int i = 0; i < n; i++)
{
cout << arr[i] << ' ';

}
cout << endl;
for (int i = 0; i < n; i++)
{
cout << arr2[i] << ' ';
}
cout << endl;
system("pause");
return 0;
}
GroZz вне форума Ответить с цитированием
Старый 05.12.2017, 10:29   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

У вас же второй массив будет "раздвигаться", как он может быть статическим из 10 элементов? Либо сразу задавайте больше, либо динамически.
p51x вне форума Ответить с цитированием
Старый 05.12.2017, 13:24   #8
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

p51x прав, у тебя 2-й массив должен быть больше чем 1-й...

А ну покажи ручной счёт (я писал об этом).

___________________________________ ______

Предположительно, нужно будет не один "n", а два: один для первого массива, а второй ("n2") - для второго... Потом нужно увеличить кол-во "n2" на 3-ри (т.е. пересоздать 2-й массив). Пересоздать массив можно только при динамической распределении памяти: жонглируя операторами "new", "delete". Типа такого:
Код:
new (n2)      // первоначально создаём
arr2=rand() 
....
перед удалением сохранить элементы arr2 где-то (предположительно в ещё одном массиве)
....
delete arr2
new (n2+3) // пересоздаём c "+3" элементами
.......
восстановить элементы arr2 со сдвигом 
.......
arr2[1]=arr[n-3];  
arr2[2]=arr[n-2];  
arr2[3]=arr[n-1];
Скажи, вы проходили динамическую память или нужно делать в статике?

Кстате, а почему ты не показываешь библиотеки которые подключал?
(а то у меня сначала не заработала программа. А у тебя ошибок, при компиляции , не выдаёт?)
ura_111 вне форума Ответить с цитированием
Старый 06.12.2017, 00:16   #9
GroZz
Новичок
Джуниор
 
Регистрация: 04.12.2017
Сообщений: 4
По умолчанию

Библиотеки:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <time.h>
#include <iomanip>

Цитата:
Скажи, вы проходили динамическую память или нужно делать в статике?
Можно сделать и в динамической памяти, но лучше как проще
GroZz вне форума Ответить с цитированием
Старый 06.12.2017, 07:26   #10
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Проще, конечно же, использовать статику.
Итак, дан бесконечный массив (бесконечный - это чисто условное понятие и означает очень большой):


1.jpg


Скажи, как в такой бесконечной цепочке отличить где полезная информация (сам массив), а где мусор (ничего)?

Твоя задача - добавь в конец элемент. Ну и выведи на экран оба массив до преобразования и после.
Если получилось, тогда задача №2 - удали предыдущие 3-ри элемента и выведи массив на экран.

Обрати внимание, что в такой сущности удалять можно только с конца.
Т.е. массив - это последовательная цепочка (начинающая с 0-ля) и разрывы не допускающая, типа такого не прокатывает:

2.jpg

Последний раз редактировалось ura_111; 06.12.2017 в 07:37.
ura_111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать программу массивы (C++) - Даны два массива, скопировать эти массивы в 3-й результирующий (размером 10 элементов) так, что Саша1990 Помощь студентам 1 02.02.2015 16:03
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12