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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2015, 21:31   #1
max.sokol
Пользователь
 
Регистрация: 14.12.2015
Сообщений: 14
По умолчанию Помогите доработать код C++

Код:
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	int a[100];
	int i, n, k, j;
	cout << "Vvedite kol-vo elementov: ";
	cin >> n;
	for (i = 0; i<n; i++)
	{
		cout << "Vvedite a[" << i << "]: ";
		cin >> a[i];
	}
	cout << "Massiv a: ";
	for (i = 0; i<n; i++)
		cout << a[i] << " ";
	cout << endl;
	cout << "Vvedite chislo sdviga: ";
	cin >> k;
	for (i = 1; i<n; i++)
	{
		a[i - 1] = a[i];
	}
	cout << "Novuj masiv: ";
	for (i = 0; i<n; i++)
		cout << a[i] << " ";
	cout << endl;

	system("pause");
	return 0;
}
Сдвиг элементов массива на k позиций влево. Все работает, но не так, последний элемент массива должен вернуться к первому значению.. этого не происходит.

Последний раз редактировалось Stilet; 17.12.2015 в 23:01.
max.sokol вне форума Ответить с цитированием
Старый 17.12.2015, 22:51   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,378
По умолчанию

Если перед началом цикла, в котором делаем сдвиг, сохранить первый элемент во временной переменной, а затем, после окончания цикла сдвига вернуть его в последний элемент, то все должно получиться:
Код:
tmp = a[0];
// Цикл сдвига
a[n] = tmp;

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 17.12.2015, 23:02   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не желаешь поизучать вот это?: http://www.programmersforum.ru/showp...4&postcount=27
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.12.2015, 16:41   #4
max.sokol
Пользователь
 
Регистрация: 14.12.2015
Сообщений: 14
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
Если перед началом цикла, в котором делаем сдвиг, сохранить первый элемент во временной переменной, а затем, после окончания цикла сдвига вернуть его в последний элемент, то все должно получиться:
Код:
tmp = a[0];
// Цикл сдвига
a[n] = tmp;

Как-то так, ...
Что-то все равно ничего не выходит..
max.sokol вне форума Ответить с цитированием
Старый 18.12.2015, 17:03   #5
max.sokol
Пользователь
 
Регистрация: 14.12.2015
Сообщений: 14
По умолчанию

а нет, уже все)

Последний раз редактировалось max.sokol; 18.12.2015 в 17:07.
max.sokol вне форума Ответить с цитированием
Старый 18.12.2015, 19:18   #6
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию

А если кто то введёт n больше 100? Резервирование массивов - костыль из тех языков и диалектов, которые не поддерживают динамические массивы, да и то запрошенное количество элементов должно проверяться
Код:
#include <iostram>
int main()
{
 int *a=nullptr;
 size_t l;
 size_t j;
 size_t k;
 size_t n;
 size_t t;
 std::cout<<"введите количество элементов"; std::cin>>n;
 a=new int [n];
 std::cout<<"введите исходный массив"<<std::endl;
 for (i=0; iM<n; ++i)
 {
  std::cout<<"a["<<i<<"]="; std::cin>>a[i];
 }
 std::cout<<"введите сдвиг"; std::cin>>k;
 if (k>0)
 {
  for (j=0; j<k; ++j)
  {
   for (t=a[0], i=1; i<n; ++i)
   {
    a[i-1]=a[i];
   }
   a[n-1]=t;
  }
  std::cout<<"новый массив:"<<std::enld;
  for (i=0; i<n; ++i)
  {
   std::cout<<"a["<<i<<"]="<<a[i]<<std::endl;
  }
  delete [] a;
  return 0;
}

Последний раз редактировалось taras-proger; 18.12.2015 в 19:21.
taras-proger вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите доработать код и исправить ошибки Kcilika Общие вопросы C/C++ 3 19.11.2015 15:16
Доработать код C++ SadGrizzly Фриланс 9 30.10.2015 09:42
Помогите доработать код со строками Оксана33 Общие вопросы по Java, Java SE, Kotlin 4 24.09.2015 13:06
Доработать код alex1808 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 18.12.2011 20:30