|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна |
|
C/C++ - Необходимо одно изменение в задаче массива array99 Абрамяна
|
Ветеран Сообщения: 1088 |
Вот сама задача: "Дан целочисленный массив размера 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" Код
#include <conio.h> #include <cstdlib> #include <iostream> #include <memory.h> 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; cout<<"Введите N (N<=10): "; cin>>N; 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<=10){ cout<<"Заполнение массива"<<endl; in_a(a,N); int T=0; for(int i=0;i<N;i++){ int C=0; for(int j=0;j<N;j++) if (a[j]==a[i]) C++; if (C<=2) a_T[T++]=a[i]; } a=a_T; cout<<"Ответ\na[]: "; out_a(a,N); cout<<"\nРазмер полученного массива: "<<T; } else cout<<"Ошибка"; getch(); } void in_a(int* a, int N){ for(int T=0;T<N;T++){ cout<<"a["<<T<<"]="; cin>>a[T]; } } void out_a(int* a, int n){ for (int T=0;a[T]!=0;T++) cout<<a[T]<<" "; } |
|
Отправлено: 11:29, 08-02-2016 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата alert30:
Цитата alert30:
|
||
Отправлено: 11:45, 08-02-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1088
|
Профиль | Отправить PM | Цитировать |
Отправлено: 08:44, 10-02-2016 | #3 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать alert30, Прошу прощения, если задену.
Но из набора букв решения я смысла не увидел. Поэтому я предложу подумать о задаче не в терминах языка, а своими словами на бумаге. Т.к. безыдейный код сложно проверять и искать в нем ошибку. |
------- Отправлено: 18:27, 17-02-2016 | #4 |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать Через 3 массива нужно, наверное, делать, так как самый пессимистичный вариант, если все N элементов массива разные. Второй массив - множество элементов, присутствующих в массиве, которое является подмножеством первого массива. Третий массив - количество каждого из типов элементов. Объем требуемой памяти получается 3*N. Второй массив в итоге будет искомым массивом после удаления. Решение нужно написать или уже не актуально?
|
|
------- Отправлено: 06:25, 23-02-2016 | #5 |
Ветеран Сообщения: 1088
|
Профиль | Отправить PM | Цитировать Спасибо всем, решение мне лично скинули давно.
|
Отправлено: 02:49, 30-03-2016 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2010 - Outlook (напоминание в повторяющейся задаче) | VictorST | Microsoft Office (Word, Excel, Outlook и т.д.) | 4 | 10-11-2015 15:46 | |
PowerShell - [блог] NetSh vs NETTCPIP модуль на простой задаче | Kazun | Скриптовые языки администрирования Windows | 0 | 30-05-2013 07:30 | |
linux и windows одно и тоже? | starwarser | Флейм | 7 | 16-06-2010 11:28 | |
C/C++ - [решено] Теоретический вопрос в задаче о классе целых чисел | Sky-er | Программирование и базы данных | 4 | 08-01-2009 04:18 | |
Работает только одно ядро | nomad73 | Процесcоры | 18 | 03-06-2008 14:46 |
|