Buongiorno gente ,ho un problema con questo codice che ho appena scritto,la stampa e l'inserimento funzionano però subito dopo mi dici che il programma ha smesso di funzione...mi potete dare una mano perfavore;)
/* merge sort*/
#include<stdio.h>
#include<stdlib.h>
void inserimento(int [], int);
void stampa(int [], int);
void mergesort1(int [], int, int);
void finalmergesort(int [],int,int,int);
main(){
int n;
printf("Inserisci il numero di element che deve contenere il vettore\n");
scanf("%d",&n);
int v[n];
inserimento(v,n);
stampa(v,n);
mergesort1(v,0,n);
// stampa(v,n);
}
void inserimento(int a[],int d){
int i;
for(i = 0 ; i<=d;i++){
printf("Inserisci elelemento\n");
scanf("%d",&a);
}
}
void stampa(int a[], int d){
int i;
for(i=0;i<= d;i++){
printf("%d\n",a);
}
}
void mergesort1(int k[], int inizio, int fine){
if(inizio<=fine){
int m;
m =((inizio+fine)/2);
mergesort1(k,inizio,m);
mergesort1(k,m+1,fine);
finalmergesort(k,inizio,m,fine);
}
}
void finalmergesort(int A[],int inizio,int mezzo,int fine){
int a,b,c;
a=inizio;
b=mezzo;
c=0;
int B[3000];
while(a<=mezzo && b<=fine){
if(A[a]<=A){
B[c]=A[a];
a++;
}else{
B[c]=A;
b++;
}
c++;}
while(a<=mezzo){
B[c]=A[a];
a++;
c++;
}
while(b<=fine){
B[c]= A;
b++;
c++;
}
int x,y;
for(x=inizio,y=0;c<=fine;x++,y++){
A[x]=B[y];
}
}