C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна

Ответить
Аватара пользователя
alert30

C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна

Сообщение alert30 »

Вот сама задача: "Дан целочисленный массив размера N. Удалить из массива все элементы, встречающиеся более двух раз, и вывести размер полученного массива и его содержимое."



Я решил, но получается так, что в программе выдает совсем иное.

В общем, нужно сделать так, чтобы эти одинаковые элементы, встречающиеся более 2 раз, удалил только один из них элемент и уменьшил общий размер массива на единицу. Например:



Код:

Код: Выделить всё

Ввожу на компе "a[0]=2, a[1]=2, a[2]=2, a[3]=4, a[4]=4, a[5]=4, a[6]=33, a[7]=44, a[8]=9, a[9]=18"
Должно быть при выводе:
"A[]: 2 2 4 4 33 44 9 18
Размер массива: 8"

Вот, собственно, код:



Код

[spoiler]Код:
[/spoiler]

Код: Выделить всё

#include 
#include 
#include 
#include 
using namespace std;
void in_a(int* a, int N);
void out_a(int* a, int N);
int main(int argc, char *argv[])
{
    system("color 0f");
    setlocale (0,"");
    int N;
    coutN;
	int *a=new int[N];
	memset((void*)a, 0x00, sizeof(int)*N);
    int *a_T=new int [N];
    memset((void*)a_T, 0x00, sizeof(int)*N);
	if (N
Аватара пользователя
Iska

Re: C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна

Сообщение Iska »

Цитата alert30:



В общем, нужно сделать так, чтобы эти одинаковые элементы, встречающиеся более 2 раз, к примеру, было таким (то есть чтобы при трехразового такого же элемента удалил только один из них элемент с массивом и уменьшил его целостный размер массива на единицу):
C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна




Коллега, попробуйте придать больше смысла этому предложению.




Цитата alert30:



Удалить из массива все элементы, встречающиеся более двух раз
C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна




Подряд или в произвольном порядке?
Аватара пользователя
alert30

Re: C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна

Сообщение alert30 »

Цитата Iska:



Коллега, попробуйте придать больше смысла этому предложению.
C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна




Моего примера не хватает? Написал же.

UPD: Сократил до смысла.


Цитата Iska:



Подряд или в произвольном порядке?
C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна




Если в задаче такого не сказано, то, пожалуй, выберу в произвольном порядке.
Аватара пользователя
lxa85

Re: C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна

Сообщение lxa85 »

alert30, Прошу прощения, если задену.

Но из набора букв решения я смысла не увидел.

Поэтому я предложу подумать о задаче не в терминах языка, а своими словами на бумаге.

Т.к. безыдейный код сложно проверять и искать в нем ошибку.
Аватара пользователя
mrcnn

Re: C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна

Сообщение mrcnn »

Через 3 массива нужно, наверное, делать, так как самый пессимистичный вариант, если все N элементов массива разные. Второй массив - множество элементов, присутствующих в массиве, которое является подмножеством первого массива. Третий массив - количество каждого из типов элементов. Объем требуемой памяти получается 3*N. Второй массив в итоге будет искомым массивом после удаления. Решение нужно написать или уже не актуально?
Аватара пользователя
alert30

Re: C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна

Сообщение alert30 »

Спасибо всем, решение мне лично скинули давно.
Ответить

Вернуться в «Программирование и базы данных»