Traccia
2- Scrivere un programma che carichi due vettori X e Y di interi, li fonda in un unico vettore Z e ordini il vettore in modo crescente. Si visualizzi il risultato ottenuto.
In entrambi i casi si utilizzino i puntatori e le variabili dinamiche.
#include <iostream>
#include <string>
using namespace std;
int x[100],y[100],z[200];
int n,m,d,k;
int *p,*q,*r;
void carica (int *z,int d){
int j,k;
for (j=0;j<d;j++)
{cout << "inserisci il numero \t";
cin >> *(z+j);
cout << endl;}
cout << "---- fine carica ----"<<endl;
}
void fondi (int *a,int *b,int *c,int n1,int m1, int d1)
{
int k;
for (k=0;k<n1;k++)
*(c+k)=*(a+k);
d1=m1+n1;
for (k=n1;k<d1;k++)
*(c+k)=*(b+k-n1);
}
void ordina(int *c,int d1){
int i,j,tmp;
int *d;
d=c ;
for (i=0;i<d1-1;i++){
for (j=i+1;j<d1;j++ ){
if (*(c+i)>*(d+j)) {
tmp=*(c+i);
*(c+i)=*(d+j);
*(d+j)=tmp;}
}}
}
int main () {
cout << "Dimensione primo vettore:\n";
cin >> n;
p=x;
carica(p,n);
cout << "Dimensione secondo vettore:\n";
cin >> m;
q=y;
carica(q,m);
r=z;
d=m+n;
fondi(p,q,r,n,m,d);
ordina(r,d);
cout << "stampa del vettore fuso e ordinato \n"<< endl;
cout << "---------------------\n";
for (k=0;k<d;k++)
cout << *(r+k) << "\t";
cout << "\n------------- Fine -----------------"<< endl;
return 0;
}