|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Одномерные динамические массивы |
|
C/C++ - [решено] Одномерные динамические массивы
|
Новый участник Сообщения: 5 |
Помогите пожалуйста разобраться, задали задание:
В целочисленном динамическом массиве Х(N) удалить все нечетные числа. Проверить, как поменялось положение максимального элемента массива. Найти среднее арифметическое элементов массива до и после удаления. В программе написать функции: удаления элемента, поиска номера максимального элемента, вычисления среднего арифметического элементов массива. Вроде бы все написал, но не могу написать саму функцию удаления элемента данного массива... Пишет, что нельзя удалить объект не являющийся указателем... Помогите пожалуйста. Можно ли удалить конкретные элементы динамического массива... Цитата:
|
||
Отправлено: 02:50, 22-03-2012 |
Пользователь Сообщения: 139
|
Профиль | Отправить PM | Цитировать Удалить один элемент из массива нельзя, надо создавать еще один массив. Просто когда ищешь нечетные, помечай их нулями(ну или -1), и счетчик заведи который посчитает их кол-во. Потом от первоначального размера массива отними счетчик, создай полученный массив, и забей его не нулевыми элементами, а старый удали.
|
------- Отправлено: 02:31, 23-03-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
ИО Капитана Очевидности Сообщения: 5387
|
Профиль | Отправить PM | Цитировать Цитата keks666sex:
Что можно сделать 1. Выделить такой же объём информации под другой массив. 2. Создать отдельную переменную - количество элементов во втором массиве. 3. При совпадении условия копировать элемент из первого массива в конец второго массива (в позицию, определяемую переменной из п.2) По завершении проверки обработать все актуальные элементы второго массива |
|
------- Отправлено: 08:01, 30-03-2012 | #3 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Спасибо всем.. я все таки решил...
#include<iostream> #include<iomanip> #include<ctime> using namespace std; void coutt(int *_mass,int _size) //Функция вывода массива на экран { for(int i=0;i<_size;i++) cout<<setw(4)<<_mass[i]; cout<<endl<<endl; } void raschet(int *_mass,int _size) //Функция вычисления максимального элемента и среднего значения элементов массива { int max=_mass[0],summ=0,nomer; float elementi=0; float sred; for(int i=0;i<_size;i++) //Вычисляем максимальный элемент и его номер { if(max<=_mass[i]) { max=_mass[i]; nomer=i; } summ=summ+_mass[i]; //Вычисляем сумму всех элементов массива elementi++; //Вычисляем количество элементов массива } sred=summ/elementi; //Вычисляем среднее значение элементов массива cout<<"Maxsimalnii element massiva "<<"[ "<<nomer<<" ] "<<max<<endl; //Выводим результаты на экран cout<<"Srednee znachenie elementov "<<sred<<endl; } void delet(int *_mass,int _size,int _elem) //Функция удаление простых чисел в массиве { int b; //Будет хранить простое число int a; //Будет хранить номер простого числа int del; //Делитель for(int i=0;i<_size;i++) //Вычисление и удаление простого числа { del=2; for( ; del <=_mass[i]/ 2 ; del++ ) //Проверка на простое число { if( _mass[i]%del == 0 ) //Если условие выполняется то Число Не простое break ; //выход из цикла } if( del >_mass[i] /2 && _mass[i]!=0 && _mass[i]!=1 ) //Если условие выполняется то Число простое { a=i; //присваиваем номер простого числа b=_mass[i]; //присваиваем простое число for(;a<_size;a++) //Поиск Не простое число { if(_mass[a]==1 || _mass[a]==0)//Если условие выполняется то { _mass[i]=_mass[a]; //Меняем простое и не простое число местами _mass[a]=b; break; //выход из цикла } del=2; //присваиваем делителю значение 2 for( ; del <=_mass[a]/ 2; del++ ) //Проверка на НЕ простое число if( _mass[a]%del==0) //Если условие выполняется то { //Меняем простое и не простое число местами _mass[i]=_mass[a]; _mass[a]=b; a=_size; //Присваиваем размер, что бы прекратился предыдущий цикл break; //выход из цикла } } } } } void main () { srand(time(0)); // инициализация генератора случайных чисел int size,elem=0; cout<<"\t\t\tVvedite razmer massiva -> ";cin>>size; //Вводим размер массива cout<<endl; int *mass=new int[size](); //Создаем динамический массив cout<<"Massiv:"; for(int i=0;i<size;i++) //Заполняем массив { mass[i]=rand()%10; //Заполняем случайными числами cout<<setw(4)<<mass[i]; //Выводим на массив экран } cout<<endl<<endl; raschet(mass,size); //Вызываем функцию вычисления максимального элемента и среднего значения элементов массива cout<<endl; int del; for(int i=0;i<size;i++) //Находим количество Простых чисел {del=2; //Задаем делитель for( ; del <=mass[i]/ 2 ; del++ )//Проверка на простое число { if( mass[i]%del == 0 )// Если выполняется число НЕ простое break ; //выход из цикла } if( del >mass[i] /2 && mass[i]!=0 && mass[i]!=1) //Если выполняется число простое elem++; //Увеличиваем число простых чисел на 1 } cout<<"\t\t... Kolichestvo prostih chisel -> "<<elem<<" ..."<<endl<<endl; //Выводим количество простых чисел на экран delet(mass,size,elem); //Вызов Функции удаление простых чисел size-=elem; //Вычитаем из размера массива количество простых чисел cout<<"Massiv posle udaleniya:"; coutt(mass,size); //Вызываем функцию вывода массива raschet(mass,size); //Вызываем функцию вычисления максимального элемента и среднего значения элементов массива delete []mass; //Удаляем динамический массив system ("pause"); //Задержка экрана } |
Отправлено: 22:34, 01-04-2012 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Одномерные массивы | Петр2 | Программирование и базы данных | 2 | 04-03-2011 17:22 | |
Динамические таблицы в PHP | ssdm | Вебмастеру | 3 | 12-03-2007 06:47 | |
VBS/WSH/JS - VBS | Динамические массивы, циклы и присваивание | mrcnn | Программирование и базы данных | 5 | 22-10-2006 14:12 | |
динамические менюшки | Surround | Вебмастеру | 2 | 20-07-2004 02:42 | |
Динамические двумерные массивы | Nealles | Программирование и базы данных | 3 | 05-09-2003 21:59 |
|