#include <stdio.h>   // for printf, scanf
#include <stdlib.h>  // for malloc, free

void print_int_array(char * name, int * a, int length);

int * make_descending(int A, int B)
{
  int length = B-A+1;
  int * result = (int *) malloc(sizeof(int) * length);

  int i;
  for (i = B; i >= A; i--)
  {
    int index = B-i;
    result[index] = i;
  }

  return result;
}

// prints the elements of the array n. The first argument
// makes the printing more informative, by specifying a 
// name for the array. See bubblesort1 for a simpler version
// of this function.
// length is the number of elements in the array n.
void print_int_array(char * name, int * a, int length)
{
  int i;
  for (i = 0; i < length; i++)
  {
    printf("%s[%d] = %d\n", name, i, a[i]);
  }
}



int main()
{
  int a, b;
  printf("please enter two integers A and B:\n");
  scanf("%d %d", &a, &b);

  if (a > b)
  {
    return 0;
  }

  int * my_array = make_descending(a, b);
  print_int_array("my_array", my_array, b-a+1);

  free(my_array);
}

