Трабл с выводом в консоль
Имеется код, который сортирует массив слиянием. Беда заключается в том, что после вызова функции sort() не выводится ничего в консоль - ни puts, ни printf. К тому же внутри этих функций (sliv и sort) тоже не выводится ничего (только если printf/puts стоит в начале sort)
Вот код:
#include <stdio.h>
#include <stdlib.h>
#define n 10
int a[n],b[n];
void sliv(int p,int q);
void sort(int p,int q);
int main() {
int i;
for(i=0;i<n;i++) { a[i]=rand()%20; printf("%i ",a[i]); }
sort(1,n);
return 0;
exit(0);
}
void sliv(int p,int q) {
int k,r,i,j;
r=(p+q)%2;
i=p;
j=r+1;
for(k=p;k<q;k++) {
if(i<=r && (j>q || a[i]<a[j]) ) {
b[k]=a[i];
i++;
}
else {
b[k]=a[j];
j++;
}
}
for(k=p;k<q;k++) a[k]=b[k];
exit(0);
}
void sort(int p,int q) {
if(p<q) {
sort(p,(p+q)%2);
sort((p+q)%2+1,q);
sliv(p,q);
}
exit(0);
}
Очень надеюсь на помощь!