Форум программистов, компьютерный форум CyberForum.ru

Одномерный масив.Добавление элементов в конец.С++ - C++

Восстановить пароль Регистрация
 
KHRONOS
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 5
20.12.2012, 22:54     Одномерный масив.Добавление элементов в конец.С++ #1
Вот задания:

1) Сформировать одномерный массив целых чисел.
2) Распечатать полученный массив.
3) Уничтожить 5 первых элементов массива.
4) Добавить в конец массива 3 новых элемента.
5) Распечатать полученный массив.

Я сделал все задания кроме 4,точнее сделал и его,но програма добавляет 3 елемента в начало массива,а не в его конец.Прошу помочь исправить мне мою ошибку.



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include<iostream>
using namespace std;
 
 
int main()
{
 int user_size;
 const int how_much_insert = 3;
 const int what_insert = 3;
 const int how_much_delete = 5;
 
 cout << "Input number mas GREATER THEN "<<how_much_delete <<" : ";
 cin >> user_size;
 
 int size = user_size + how_much_insert;
 int *b=new int[size];
 
 cout << "Input element mas: "<< endl;
 for(int i = how_much_insert; i < size; i++)
 cin >>b[i];
 
 cout<<"Output element mas:"<<endl;
 for( i = how_much_insert; i < size; i++) cout << b[i] << ' ';
 cout << endl;
 
 for(i = 0 ;i < how_much_insert; i++) b[i] = what_insert;
 cout << "Output element mas after transform" << endl;
 
 int *new_mas = new int[user_size - how_much_delete];
 for( i = 0; i < size - how_much_delete; i++)
 {
  new_mas[i] = b[i];
  cout << new_mas[i] << ' ';
 }
 
 cout << endl;
 
 cin.get();
 cin.get();
 return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
20.12.2012, 23:03     Одномерный масив.Добавление элементов в конец.С++ #2
сделайте , по принципу того как удаляли, новый массив размером current_size+ how_much_insert причем лучше ввести current_size , так как вы и удаляете , и вставляете , ну вот и в новый массив от 0 to сurrent_size старым заполнить а потом from current_size to current_size+ how_much_insert новых эллементов, и после этого
current_size = how_much_insert, и не забывайте освобождать память которую не используете
KHRONOS
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 5
20.12.2012, 23:06  [ТС]     Одномерный масив.Добавление элементов в конец.С++ #3
Если честно,то я ничего не понял))только то что нужно создать новый масив,если не трудно исправьте этот момент в моем коде,буде очень благодарен)
svkpro
 Аватар для svkpro
8 / 8 / 0
Регистрация: 07.12.2012
Сообщений: 143
20.12.2012, 23:16     Одномерный масив.Добавление элементов в конец.С++ #4
я бы сделал так:
Код
#include "stdafx.h"
#include <iostream>

using namespace std;

const int N=10;//максимальное количество элементов
int c,i,j,k,n,massiv[N];    


int main()
{
	locale::global(locale("Rus"));
	cout<<"какое количество элементо вы хотите ввести?(не больше 10)\n"; 
		cin>>c;
	for(i=0;i<c;i++)
		cin>>massiv[i];   //Ввод массива
	cout<<"это ваш массив: [";
	for(i=0;i<c;i++)//вывод на экран
		cout<<massiv[i]<<",";
		cout<<"]"<<endl<<endl;
	cout<<"Введите количество последних элементов(К)\n";
		cin>>k;
	if(k>c)
	{
		cout<<"вы ввели неверное значение! приложение будет закрыто!";//проверка правильности данных
		cin.get();
		cin.get();
		exit(1);
	}
	n=(i-k);
	for(j=n;j<=i;j++)		
		massiv[j]=1;	
	cout<<"это ваш массив после замены последних К элементов: [";
	for(i=0;i<c;i++)//вывод на экран
		cout<<massiv[i]<<",";
		cout<<"]"<<endl<<endl;
	system("pause");

	return 0;
}
Добавлено через 7 минут
Цитата Сообщение от svkpro Посмотреть сообщение
я бы сделал так:
Код
#include "stdafx.h"
#include <iostream>

using namespace std;

const int N=10;//максимальное количество элементов
int c,i,j,k,n,massiv[N];    


int main()
{
	locale::global(locale("Rus"));
	cout<<"какое количество элементо вы хотите ввести?(не больше 10)\n"; 
		cin>>c;
	for(i=0;i<c;i++)
		cin>>massiv[i];   //Ввод массива
	cout<<"это ваш массив: [";
	for(i=0;i<c;i++)//вывод на экран
		cout<<massiv[i]<<",";
		cout<<"]"<<endl<<endl;
	cout<<"Введите количество последних элементов(К)\n";
		cin>>k;
	if(k>c)
	{
		cout<<"вы ввели неверное значение! приложение будет закрыто!";//проверка правильности данных
		cin.get();
		cin.get();
		exit(1);
	}
	n=(i-k);
	for(j=n;j<=i;j++)		
		massiv[j]=1;	
	cout<<"это ваш массив после замены последних К элементов: [";
	for(i=0;i<c;i++)//вывод на экран
		cout<<massiv[i]<<",";
		cout<<"]"<<endl<<endl;
	system("pause");

	return 0;
}
немножко не то)) сейчас переделаю)) хотя это тоже полезный пример)
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
20.12.2012, 23:21     Одномерный масив.Добавление элементов в конец.С++ #5
Цитата Сообщение от KHRONOS Посмотреть сообщение
Если честно,то я ничего не понял))только то что нужно создать новый масив,если не трудно исправьте этот момент в моем коде,буде очень благодарен)
C++
1
2
3
4
5
6
int *new_mas = new int[size + how_much_insert];
 for( i = 0; i <size; i++)
  new_mas[i] = b[i];  
 for( i = 0; i < size+ how_much_insert; i++)
   cin>> new_mas[i];
size = user_size+ how_much_insert
size только перед этим опеределить надо
svkpro
 Аватар для svkpro
8 / 8 / 0
Регистрация: 07.12.2012
Сообщений: 143
20.12.2012, 23:22     Одномерный масив.Добавление элементов в конец.С++ #6
вот ваше 4 задание)
Код
#include "stdafx.h"
#include <iostream>

using namespace std;

const int N=10;//максимальное количество элементов
int c,i,j,k,n,massiv[N];    //Описание массива


int main()
{
	locale::global(locale("Rus"));
	cout<<"какое количество элементо вы хотите ввести?(не больше 10)\n"; 
		cin>>c;
	for(i=0;i<c;i++)
		cin>>massiv[i];   //Ввод массива
	cout<<"это ваш массив: [";
	for(i=0;i<c;i++)//вывод на экран
		cout<<massiv[i]<<",";
		cout<<"]"<<endl<<endl;
	cout<<"Введите количество последних элементов(К)\n";
		cin>>k;
	if(k>c)
	{
		cout<<"вы ввели неверное значение! приложение будет закрыто!";//проверка правильности данных
		cin.get();
		cin.get();
		exit(1);
	}
	n=(i+k);
	for(j=i;j<=n;j++)		
		massiv[j]=1;	
	cout<<"это ваш массив после добавления  последних К элементов: [";
	for(i=0;i<n;i++)//вывод на экран
		cout<<massiv[i]<<",";
		cout<<"]"<<endl<<endl;
	system("pause");

	return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2012, 23:43     Одномерный масив.Добавление элементов в конец.С++
Еще ссылки по теме:

C++ Одномерный масив: расположить символы в обратном порядке
C++ Нужно отсортировать одномерный масив
C++ C++, одномерный масив
C++ Добавление элементов в конец связного списка
C++ Дан массив из "n" элементов.Выполнить добавление элементов "k" в конец массива

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
KHRONOS
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 5
20.12.2012, 23:43  [ТС]     Одномерный масив.Добавление элементов в конец.С++ #7
Всем спасибо))
Yandex
Объявления
20.12.2012, 23:43     Одномерный масив.Добавление элементов в конец.С++
Ответ Создать тему
Опции темы

Текущее время: 06:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru