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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2009, 23:50   #11
forsaken66
Куды бечь?
Форумчанин
 
Аватар для forsaken66
 
Регистрация: 05.10.2009
Сообщений: 104
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение

BOBAH13, ему по заданию нужно " изменить размерность массива."
Хотя а то новый создавать не нужно. Просто:
Код:
 ...
 delete []a;
 a = b;
 ...
И массивы через memcpy быстрее и короче копировать:
Код:
memcpy(b, a, x*sizeof(int));
Спасибо большое за оптимизацию!
Не хватало всего одного байта. Да-да, того самого, что из восьми бит состоит.
forsaken66 вне форума Ответить с цитированием
Старый 16.11.2009, 23:54   #12
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Вот все, работает
Код:
#include <windows.h>
#include <iostream>
#include <conio.h>
#include <time.h>

using namespace std;

int main()
{
 int *a,x=0;
 int *b,n=0;
 srand((unsigned int)time(NULL));
 cout<<"Vvedite razmer massiva- ";
 cin>>x;
 cout<<endl;
 a=new int[x];
 for(int i=0;i<x;i++)
  {
   a[i]=rand()%50-20;
   cout<<a[i]<<" ";
  }
 cout<<endl<<endl<<"Vvedite chislo n- ";
 cin>>n;
 cout<<endl<<endl;
 
 for(int i = 0; i < x;)
 {
	 if((a[i] < 0) || (a[i] > n))
	 {
		 for(int j = i; j < x - 1; j++)
		 {
			 a[j] = a[j + 1];
		 }
		 x--;
	 }
	 else
	 {
		i++;
	 }
 }

 b = new int[x];
 memcpy(b, a, x * sizeof(int));
 delete []a;

 cout<<"Itogovuu massiv- "; 
 for(int i = 0; i < x; i++)
 {
   cout<<b[i]<<" ";
 }

 delete []b;

_getch();
return 0;
}
p.s. понятно зачем x уменьшать ?
Изображения
Тип файла: png Безымянный.png (13.3 Кб, 47 просмотров)
BOBAH13 вне форума Ответить с цитированием
Старый 17.11.2009, 00:06   #13
forsaken66
Куды бечь?
Форумчанин
 
Аватар для forsaken66
 
Регистрация: 05.10.2009
Сообщений: 104
По умолчанию

Да теперь первая часть условия работает! спасибо!)) Но. втора часть не работает при n<5. не понимаю снова...

оййй!! от я ляпнул!! )) пардон, в моем примере на выходе ничегошеньки и не должно оставаться)


BOBAH13 объясни пожалуйста если можно для чего ты уменьшаешь х. не совсем понял.)
Изображения
Тип файла: jpg Безымянный.JPG (14.4 Кб, 42 просмотров)
Не хватало всего одного байта. Да-да, того самого, что из восьми бит состоит.

Последний раз редактировалось forsaken66; 17.11.2009 в 00:09. Причина: ляп
forsaken66 вне форума Ответить с цитированием
Старый 17.11.2009, 08:39   #14
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Чтобы не расчитывать сколько было удалено из массива, и потом производить вычетание в отедельную переменную, чтобы найти размерность нового массива. А так сразу, ведь если уменьшать начальную размероность, каждый раз когда удаляется элемент, то таким образом после цикла получаем новую размерность массива
BOBAH13 вне форума Ответить с цитированием
Старый 17.11.2009, 19:11   #15
forsaken66
Куды бечь?
Форумчанин
 
Аватар для forsaken66
 
Регистрация: 05.10.2009
Сообщений: 104
По умолчанию

Спасибо, я все понял проблема исчерпана!
Не хватало всего одного байта. Да-да, того самого, что из восьми бит состоит.
forsaken66 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странная проблема с Timer'ом .Phoenix Общие вопросы Delphi 4 19.09.2009 19:58
связка MySQL+PHP5 - странная проблема SwiP SQL, базы данных 2 06.04.2009 23:25
snmp+php странная проблема baarseek PHP 6 19.02.2009 14:02
Странная проблема с floating-point Niello Общие вопросы C/C++ 0 08.10.2008 14:30
Странная проблема при сложении double. Помогите разобраться. ivank Общие вопросы C/C++ 2 23.09.2008 13:04