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

Fie vectorul A(n) cu numere întregi.Sa se transforme vectorul A in Mulțimea B(elementele unei mulțimi sunt unice.

Va rog sa m-a ajutați și cu o explicație
,mulțumesc frumos!!

Răspunsuri la întrebare

Răspuns de express
2
Ai sursa problemei cerute. O vei parcurge pas cu pas si o vei intelege. Succes!
#include <iostream>
using namespace std;
int a[100],b[100],n,k,i,j;
bool gasit;
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
     cin >> a[i];
    k=1;
    b[k]=a[k];
    for(i=2;i<=n;i++)
     {
         gasit=false;
         for(j=1;j<=k;j++)
          if(a[i]==b[j])
           {
               gasit=true;
               break;
           }
         if(!gasit) b[++k]=a[i];
     }
     for(i=1;i<=k;i++) g<<b[i]<<" ";
    
    return 0;
}



acter: Îți mulțumesc pentru răspuns,dar eu am început sa învăț programare de puțin timp.. bănuiesc ca k e auxiliară necesară pentru transformarea vectorului,iar inițializarea lui cu 1 începe de la primul element,iar b[k]=a[k] bănuiesc ca e condiția ca sa se poate transforma.... dacă ai putea sa-mi explici așa pas cu pas te rog...știu ca e nu e prea plăcut..dar te-as aprecia și respecta mult pentru efort!
express: exact...tu n-ai invatat pas cu pas...iti va fi foarte usor sa intelegi o sursa atunci cand "o depanezi" cu pas cu pas
acter: Da...încerc FOR i=2 al doilea element din vector? Iar j =1 primul element din mulțime? Faza cu găsit cred ca am inteles-o adică dacă elementele din vector sunt egale cu elementele din mulțime sau cu primul element nu se face nimic,iar dacă nu k creste cu o unitate?
express: ai inteles ideea...asa e. Mai poti sa faci si pe ideea lui Razzvy ...sa sortezi si sa selectezi apoi doar elemente unice
Răspuns de Razzvy
1
#include <iostream>
#include <algorithm.h>
using namespace std;

int main()
{
int a[100], n, j;
cin>>n;
for(int i = 0 ; i < n; ++i)
   cin>>a[i];

sort(a, a + n);  //Sortarea vectorului de la 0 la n - 1

j = 1;                           
for(int i = 1; i < n; ++i)
{
   if(a[i] != a[i - 1])          
      a[j++] = a[i]; 
}

for(int i = 0; i < j; ++i)
   cout<<a[i]<<' ';
}
Alte întrebări interesante