Informatică, întrebare adresată de niorbaana, 8 ani în urmă

Cum as putea pune doua siruri ( v[i] , w[j] ) intr-un al treilea? Sa formez un sir care sa contine atat sirul v[i] cat si w[j] .. ?

Multumesc !


niorbaana: Buna ! Nu
niorbaana: Un sir de numere/vector
boiustef: şi deci vrei doi vectori să-i lipeşti?
niorbaana: Pt ca am de facut un program in care sa afisez numerele ordonate crescator a doua siruri
niorbaana: m am gandit ca prima data sa pun ambele siruri intr unul si apoi sa sortez sirul
boiustef: da, se poate. e problemă se le pui în al treilea??
boiustef: dar acei doi vectori sunt daţi ordonaţi?
niorbaana: da
niorbaana: eu trebuie doar sa afisez cei doi vectori ordonati , nu e neaparat sa ii pun intr-un al treilea
niorbaana: cei doi vectori sunt ordonati crescator

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

  int n,v[100001];

  cin>>n;

  for (int i=1;i<=n;++i)

      cin>>v[i];

  int m,z[100001],c[200002];

  cin>>m;

  for (int i=1;i<=m;++i)

     cin>>z[i];

 int i=1, j=1,k=1;

 while ((i<=n)&&(j<=m)) {

   if (v[i]<z[j]) { c[k]=v[i]; ++i;++k;}

   else { c[k]=z[j]; ++j;++k;}

 }

 if (i<=n){

   for (int p=i;p<=n;++p)

       {c[k]=v[p];++k;}

 }

 if (j<=m){

   for (int p=j;p<=m;++p)

           {c[k]=z[p];++k;}

 }

   for (int p=1; p<k;++p)

       cout<<c[p]<<" ";

   return 0;

}

Explicație:

e folosită metoda clasică "interclasare" a doi vectori ordonati crescător. Se generază vectorul al treilea crescător cu elementele din primii doi vectori


boiustef: ia codul sursă de aici:
https://pastebin.com/YZJixzU6
niorbaana: WOW
niorbaana: Multumesc ! Mi ati facut tot codul , insa trebuie sa imi afiseze o singura data nr chiar apare un nr de 2 sau 3 ori
niorbaana: *mi ai
niorbaana: * chiar daca
boiustef: trebuie să formulezi clar cerinţa...
niorbaana: Da , scz , aparent se pot afisa si de cate 2 ori aceleasi nr , insa la unele exemple nu funtioneaza programul
boiustef: concret la care...
niorbaana: Merge , am sters eu din gresala ceva
boiustef: :))), :(((
Alte întrebări interesante