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
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;}
#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.
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă