Тема: Допоможіть буть ласка написати код
Дано цілочисловий масив розміру N. Видалити з масиву всі елементи, що
зустрічаються більше двох разів, і вивести розмір отриманого масиву і його
вміст.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Допоможіть буть ласка написати код
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Дано цілочисловий масив розміру N. Видалити з масиву всі елементи, що
зустрічаються більше двох разів, і вивести розмір отриманого масиву і його
вміст.
#include <iostream>
#include <cstdlib>
#define SIZE 20
using namespace std;
int main(int argc, char **argv) {
/* Cтворюємо початковий масив array
* і масив new_array для елементів, що повторюються */
int array[SIZE], new_array[SIZE];
/* i, j - лічильники */
int i, j;
/* flag - прапорець */
int flag;
/* found - кількість знайдених елементів */
int found;
/* Заповнюємо масив array випадковими числами,
* а масив new_array - нулями */
for (i = 0; i < SIZE; i++) {
array[i] = rand() % 10;
new_array[i] = 0;
}
/* Виводимо масив array */
cout << "array:\n";
for (i = 0; i < SIZE; i++) {
cout << array[i] << ' ';
}
cout << '\n';
/* Виводимо масив new_array */
cout << "new_array:\n";
for (i = 0; i < SIZE; i++) {
cout << new_array[i] << ' ';
}
cout << '\n';
/* Перебираємо кожен елемент початкового масиву */
for (i = 0, found = 0; i < SIZE; i++) {
/* Рахуємо однакові елементи */
for (j = 0, flag = 0; j < SIZE; j++) {
/* Якщо елементи рівні і це не один і той самий елемент,
* значить ми знайшли елемент, що повторюється */
if (array[i] == array[j] && i != j) {
flag++;
}
}
/* Перевіряємо чи знайшли більше двох однакових елементів */
if (flag >= 2) {
/* Перевіряємо чи ми раніше не знаходили цей елемент */
for (j = 0, flag = 0; j < found; j++) {
/* Якщо знайшли два однакових елементи,
* то це значить що ми уже знаходили цей елемент */
if (new_array[j] == array[i]) {
flag = 1;
}
}
/* Якщо прапорець дорівнює нулю - то знайдений новий елемент */
if (flag == 0) {
/* Записуємо знайдений елемент в масив */
new_array[found] = array[i];
found++;
}
}
}
/* Виводимо масив new_array */
cout << "Знайдено " << found << " елемент(-а, -ів):\n";
for (i = 0; i < found; i++) {
cout << new_array[i] << ' ';
}
cout << '\n';
return 0;
}
Я знаю, що це не та мова, яка потрібна Вам, але осьо приклад, від якого можна відштовхнутися:
>>> a = [1, 2, 3, 3, 3, 2, 3, 42, 1, 1]
>>> a = [x for x in a if a.count(x) < 3]
>>> a, len(a)
([2, 2, 'a'], 3)
Можна ще коротше, але тоді взагалі декому може бути незрозуміло. Beautiful is better than ugly. Explicit is better than implicit.Simple is better than complex. Complex is better than complicated. Спробуйте щось подібне на плюсах
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися