Ver el código que tienes puede ayudar...
Aquí te dejo mi código, en éste tenía que crear un struc con dos punteros que apuntaran a cualquier par repetido y si no había, retornaba los dos punteros del struc con el valor nulo, sino, retornaba los valores.
PD: Tenía que hacerlo dentro de una función.
Ahora bien, el siguiente ejercicio, me pedía que a esos valores repetidos lo elimine, teniendo así, un nuevo arreglo sin los datos repetidos. El tema es que no sé el cómo hacer eso, los ordené, pero hasta ahí llego
No entiendo muy bien lo del array final y eso, me puedes dar un ejemplo simple?
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
struct Apuntadores{
int *a1=nullptr,*a2=nullptr;
};
void Acomodar_arreglo(int *a, int size);
Apuntadores Buscar_repetidos(int *a, int size);
int main(int argc, char *argv[]) {
srand(time(0));
int *p=nullptr, n;
cout<<"Ingrese el tamanio del vector: "; cin>>n;
p=new int [n];
for(int i=0;i<n;i++) {
p[i]=1+rand()%10;
}
for(int i=0;i<n;i++) {
cout<<p[i]<<setw(2)<<" ";
} cout<<endl;
Acomodar_arreglo(p,n);
for(int i=0;i<n;i++) {
cout<<p[i]<<setw(2)<<" ";
}
cout<<endl;
Apuntadores A=Buscar_repetidos(p,n);
if(A.a1==nullptr && A.a2==nullptr){
cout<<"No hay valores repetidos";
}else{
cout<<"Los valores repetidos son: "<<*(A.a1)<<" y "<<*(A.a2)<<endl;
delete [] p;
return 0;
}
void Acomodar_arreglo(int *a, int size){
int guardar;
for(int i=0;i<size;i++) {
for(int j=0;j<size;j++) {
if(a[j]>=a[j+1]){
guardar=a[j];
a[j]=a[j+1];
a[j+1]=guardar;
}
}
}
}
Apuntadores Buscar_repetidos(int *a, int size){
Apuntadores A;
for(int i=0;i<size;i++) {
if(a[i]==a[i+1]){
A.a1=a+i;
A.a2=a+i+1;
}
}
return A;
}