int add_item){
int *tmp = new int[size]{0};
for(int i = 0; i < size; i++)
tmp[i] = p[i];
delete [] p;
p = new int[size++];
for(int i = 0; i < size; i++)
p[i] = tmp[i];
p[size - 1] = add_item;
delete [] tmp;
}
void fill(int *p, int size){
bool is_equals = 1;
for(int i = 0; i < size; i++){
int item = random() % 100;
for(int j = 0; j < i; j++)
if(item == p[j]){
is_equals = 0;
break;
}
if(is_equals){
p[i] = item;
is_equals = 1;
continue;
}
i--;
is_equals = 1;
}
}
void print(int *p, int size, int is_endl = 0, const char* separator = " "){
for(int i = 0; i < size; i++)
cout << p[i] << ((is_endl != 0) ? "\n" : separator);
cout << endl;
}
void intersection(int* p1, int size1, int *p2, int size2){
int size = 0;
int* equ = new int[size];
int is_equals = 0;
for(int i = 0; i < 6; i++){
// for(int j = 0; j < size2; j++)
// if(p1[i] == p2[j]){
// is_equals = 1;
// break;
// }
// // if(is_equals)
// push(equ, size, p1[200]);
push(equ, size, 100);
}
// cout << size << endl;
print(equ, size, 0, ", ");
}
int main(){
srand(time(0));
int sizeN = 10;
int sizeP = 10;
int *N = new int[sizeN];
int *P = new int[sizeP];
fill(N, sizeN);
fill(P, sizeP);
cout << "множество чисел A: ";
print(N, sizeN, 0, ", ");
cout << "множество чисел B: ";
print(P, sizeP, 0, ", ");
cout << "Перечисление множеств A и B: ";
intersection(N, sizeN, P, sizeP);
return 0;
}
Здесь нет вызова функции push - выброси тогда её , и всё будет ок
Вообще - прикольный код, как только фантазия у людей ни работает!
Блин, классная идея, да вот только есть проблема :) Если ещё раз посмотреть на мой код, видно закомментированную часть, у меня задача стоит, реализовать пересечение, 100 раз писал эту ф-ю push... Но т.к. щас на питоне, не всегда получается хранить в голове точно что либо, помогаю другу с лабораторным... Раньше точно такой же код прокатывал
Сори, не заметил вызова из вызова...
А что ни одного delete нет ? Я-то думал там утечка, а там -не, просто чёрная дыра...
на 1 курсе говорили что после выхода из main там всё само удаляется, у меня delete есть только в push
Стикер
Это другой вопрос, дай ему хоть с этим разобраться
Ёмаё, как ты это выделение сделал ? Строк в коде ?
Стикер
пкм квот реплай
интересно, секунду
достижение, другая ошибка :)
Нет, ошибка та же.
int item = random() % 100; лучше rand() писать, random() это какая-то internal функция а ещё ты в push(equ, size, 100); локальную переменную int size = 0; передаёшь которая в начале intersection объявлена
Ой блин, точно, спасибо большое)
Обсуждают сегодня