Informatică, întrebare adresată de Sebytza23, 9 ani în urmă

Am si eu o problema nenorocita care nu da niciodata:
Sa se stearga dintr-un vector toate numerele duplicate!
#include

using namespace std;

int main()
{
int v[20],i,n,k=0,j,d;
cout << "Cate numere utilizati:";cin>>n;
for (i = 0 ; i < n ; i++)
{
cout << "Introduceti o valoare:";cin >> v[i];
}
for (i = 0 ; i < n ; i++)
{int h = i;
j = v[i];

for (i = 0 ; i < n-1 ; i++)
{ int g = i;
if (j == v[i])
{ d = i;
for (i = d ; i < n-1 ; i++)
{
v[i] = v[i+1];
}
n--;
}
i = g;
}
i = h;
}
for (i = 0 ; i < n ; i++)
{
cout << v[i]<< ' ';
}
}
Asta e rezolvarea mea,de ce nu da?

Răspunsuri la întrebare

Răspuns de tudor09
0
///Salut, aceasta este rezolvarea:

#include<iostream>
using namespace std;
int main(){int v[20],i,n,h,p,g;

cout << "Cate numere utilizati:";cin>>n;


for (i = 0 ; i < n ; i++){   cout << "Introduceti o valoare:";cin >> v[i];}

for (i = 0 ; i < n ; i++){   for(p=i+1;p<n;p++){     if(v[i]==v[p]){
       if(v[i]==v[i+1])          g=1;       else          g=0;
       for(h=i;h<n;h++)          v[h]=v[h+1];       n--;
       if(g==1)         for(h=i;h<n;h++)           v[h]=v[h+1];
       else         for(h=p;h<n;h++)            v[h]=v[h+1];       n--;

     }   }
 }for (i = 0 ; i < n ; i++){  cout << v[i]<< ' ';}
return 0;}

tudor09: Nu cred ca iti mergea daca existau numere identice unul langa celalalt(iti mai trebuia un if si un for pentru acel caz).O sa iti fie mai usor sa iti gasesti greselile daca scrii cu alineate in functie de comenzi.
Sebytza23: salut ,am luat raspunsul tau,e gresit ,are o problema mai mare ca algoritmul meu
Sebytza23: http://imgur.com/W6UeemE
Sebytza23: aceasta este problema
Sebytza23: cu alineate fac problemele,dar pe brainly sunt fara
Sebytza23: de exemplu problema facuta de tine am facut-o cu alineate si a dat gresit in cazul in care fac si 7 6 7 6 7 6 8 9
Alte întrebări interesante