Esercizo sui puntatori in C++ n.2

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;} Facebook Twitter Pinterest

Tu devi essere registrato per visualizzare questo articolo.

Esegui la registrazione per accedere a questo contenuto.

inserimento cognome utente