In: Computer Science
C
Write a function that takes as input an array of int pointers, multiplies the ints the pointers point to by -1, and then sorts the array such that the values pointed to by the pointers are in decreasing order. For example, if the array is size 10 the pointer at index 0 will point to the largest value after multiplying by -1 and the pointer at index 9 will point to the smallest value after multiplying by -1. If the input is invalid the function should return 1. Otherwise, the function should return 0. Note- a pointer to the array size is passed to the function, NOT the actual size.
#include<stdio.h>
#define MAX 100
int sort(int* arr, int n)
{
   int i, j;
   double temp;
   if(n<=0){
      return 1;
   }
   for (i = 0; i < n; i++) {
      arr[i] = arr[i]*-1;
   }
    for (i = 0; i < n - 1; i++) {
        for (j = 0; j < n - i - 1; j++) {
            if (arr[j] < arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    return 0;
}
int main(void) {
   int n, i;
   int arr[MAX];
   printf("Enter size: ");
   scanf("%d",&n);
   printf("Enter %d integers: \n",n);
   for(i = 0;i<n;i++){
      scanf("%d",&arr[i]);
   }
   sort(arr,n);
   printf("\nSorted array: ");
   for(i = 0;i<n;i++){
      printf("%d ",arr[i]);
   }
   return 0;
}


int sort(int* arr, int n)
{
   int i, j;
   double temp;
   if(n<=0){
      return 1;
   }
   for (i = 0; i < n; i++) {
      arr[i] = arr[i]*-1;
   }
    for (i = 0; i < n - 1; i++) {
        for (j = 0; j < n - i - 1; j++) {
            if (arr[j] < arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    return 0;
}