Grande! Mi potresti dire anche se per il terzo problema la soluzione potrebbe essere questa?
codice:
#include <stdio.h>

void merge(int *A, int na , int *B, int nb , int *C);

int main()
{
 int V[5] = {1,8,12,16,18};
 int T[5] = {3,6,9,12,15};
 int U[10];
 
 merge(V,5,T,5,U);

 return 0;
}

void merge( int A[], int na, int B[], int nb, int C[])
{
 int i,j,k;
 i=j=k=0;
//Termina quando termina il primo array
 while (i<na && j<nb) {
  if (A[i]<B[j])
   C[k++]=A[i++];
  else
   C[k++]=B[j++];
 }
//Copiatura del rimantente array 
 while (i<na)
 {
  C[k++]=A[i++];
 }
 while (j<nb)
 {
  C[k++]=B[j++];
 }

 printf("\n");
 for(i = 0; i < 10; i++)
 {
  printf(" %d ", C[i]);
 }
 printf("\n");
}
Per tutti gli utenti... Questo problema consisteva nell'implementare una funzione che facesse la fusione ordinata su due array ordinati.