Answer:
#include <stdio.h>
int fix_sorted_array(double * arr,unsigned long n){
int i;
int index=-1;
int item;
for(i=1;i<n;i++){
if(arr[i]<arr[i-1]){
index = i;
item = arr[i];
break;
}
}
for(i=index;i>0;i--){
if(arr[i-1]>item){
arr[i] = arr[i-1];
}else{
arr[i] = item;
break;
}
}
return index;
}
void print(double *arr,long s){
int i;
for(i=0;i<s;i++){
printf("%.2f ",arr[i]);
}
printf("\\");
}
int main(void){
double array[7] = {-23.75,20,25.10,-15,37.10,200.12,1000};
printf("array before : ");
print(array,7);
int index = fix_sorted_array(array,7);
printf("\\Return index : %d\\",index);
printf("array after : ");
print(array,7);
return 0;
}
Step-by-step explanation:
#include <stdio.h>
int fix_sorted_array(double * arr,unsigned long n){
int i;
int index=-1;
int item;
for(i=1;i<n;i++){
if(arr[i]<arr[i-1]){
index = i;
item = arr[i];
break;
}
}
for(i=index;i>0;i--){
if(arr[i-1]>item){
arr[i] = arr[i-1];
}else{
arr[i] = item;
break;
}
}
return index;
}
void print(double *arr,long s){
int i;
for(i=0;i<s;i++){
printf("%.2f ",arr[i]);
}
printf("\\");
}
int main(void){
double array[7] = {-23.75,20,25.10,-15,37.10,200.12,1000};
printf("array before : ");
print(array,7);
int index = fix_sorted_array(array,7);
printf("\\Return index : %d\\",index);
printf("array after : ");
print(array,7);
return 0;
}