Algoritmo di merge di due vettori ordinati

#include <stdio.h>
#include "vettori.h"

int vett1[10], vett2[10], vett3[20];
int n1 = 0, n2 = 0;

void merge() {
	int i;
	for (i=0; i<20; i++) {
		// controllo che i 2 vettori non siano esauriti
		if (n1<10 && n2<10) {
			// copio in vett3 il minore fra vett1 e vett2
			if (vett1[n1] < vett2[n2]) {
				vett3[i] = vett1[n1];
				n1++;
			} else {
				vett3[i] = vett2[n2];
				n2++;
			}
		// se uno dei 2 vettori è esaurito, copio gli elementi rimanenti dell'altro vettore
		} else {
			// copio vett1 in vett3
			if (n1<10) {
				vett3[i] = vett1[n1];
				n1++;
			}
			// copio vett2 in vett3
			if (n2<10) {
				vett3[i] = vett2[n2];
				n2++;
			}
		}
	}
}

int main() {
	printf("Inserisci i dati ordinati di vett1 e vett2\n");

	LeggeVettoreInt(vett1, 10);
	LeggeVettoreInt(vett2, 10);

	printf("vett1 = "); StampaVettoreInt(vett1, 10);
	printf("vett2 = "); StampaVettoreInt(vett2, 10);

	merge();

	printf("vett3 = "); StampaVettoreInt(vett3, 20);

	return 0;
}