Răspuns :
Pai nai ce face la numerele distincte, dupa ce sortezi vectorul, numerele care se repeta vor fi ordonate si pur si simplu controlezi daca nu scrii un numar ca anteriorul :). De ex: ai vectorul: 1 5 4 3 6 5 2 5, dupa sortare: 1 2 3 4 5 5 5 6, inainte de a afisa un numar, controlezi daca vector[i] nu e egal cu vector[i-1] si astai e totul :). Dar asa, legat de cod, e cam urit scris. Macar puneai swap in cel mai rau caz, sau sort in cel mai bun. Iata un cod correct:
#include <bits/stdc++.h>
using namespace std;
ifstream fin("date.in");
int a[100],b[100],n1,n2,x;
int main()
{
while(fin >> x)
if(x%2==0) a[n1++]=x;
else b[n2++]=x;
sort(a,a+n1,greater<int>());
sort(b,b+n2);
for(int i=0;i<n2;i++)
if(i==0) cout << b[i] << " ";
else if(b[i]!=b[i-1])
cout << b[i] << " ";
cout << endl;
for(int j=0;j<n1;j++)
if(j==0) cout << a[j] << " ";
else if(a[j]!=a[j-1])
cout << a[j] << " ";
return 0;
}
#include <bits/stdc++.h>
using namespace std;
ifstream fin("date.in");
int a[100],b[100],n1,n2,x;
int main()
{
while(fin >> x)
if(x%2==0) a[n1++]=x;
else b[n2++]=x;
sort(a,a+n1,greater<int>());
sort(b,b+n2);
for(int i=0;i<n2;i++)
if(i==0) cout << b[i] << " ";
else if(b[i]!=b[i-1])
cout << b[i] << " ";
cout << endl;
for(int j=0;j<n1;j++)
if(j==0) cout << a[j] << " ";
else if(a[j]!=a[j-1])
cout << a[j] << " ";
return 0;
}
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Ne bucurăm dacă informațiile oferite v-au fost de ajutor. Pentru orice întrebare sau clarificare suplimentară, echipa noastră vă stă la dispoziție. Revenirea dumneavoastră ne onorează – nu uitați să ne salvați în lista de favorite!