Доброго времени суток. Дана такая задача :
Имеется два массива целых чисел: первый заполнен по возрастанию, второй - по убыванию. Объединить в порядке возрастания так, чтобы итоговый массив занял место первого массива. Дополнительных массивов не использовать.
Если бы мы сливали всё в третий массив, это было бы просто. Но в данном случае что-то у меня не получается докрутить .Вот что пока получилось.
void insert(int * arr, int N, int position, int x){
for (int i = N-1; i >= position; i--)
{
*(arr+i+1)=*(arr+i);
}
*(arr+position-1)=x;
}
void task3(){
int N1=5,N2=5;
int a1[10]={1,4,9,12,54};
int a2[]={99,17,9,8,4};
for (int i = 0, j=N2-1; i < N1 || j>=0 ; ){
if(a2[j]<=a1[i]){
insert(a1,9,i,a2[j]);
j--;
}else i++;
}
for (int i = 0; i < N1+N2; i++)
{
printf("%d ",*(a1+i));
}
printf("\n");
}
Подскажите, пожалуйста, как решить.
Заранее большое спасибо за ответы!