I am trying to reverse the contents of an array and store them in another array, but it just outputs last element of the original array. Here's my code:

```
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

float* copy(const float *source, int s){

    float* target;
    int x=s-1;
    target=(float*)malloc(s*sizeof(float));

    for (int i= 0; i<s; i++){
        target[x - i]=source[i];

    }
    return target; 
}

int main(){

    int nelements;
    float *source= NULL;
    float *target=NULL;
    printf("Enter no of elements:");
    scanf("%d", &nelements);
    source=(float*)malloc(nelements*sizeof(float));
    for (int i=0; i<nelements; i++){
        scanf("%f", &source[i]);
    }
    target=copy(source, nelements);
    printf("%f\n", *target);        
    free(source);
    free(target);

    return 0;
}

```
['https://Stackoverflow.com/questions/72274175', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/19136146/']
> 
> but it just outputs last element of the original array
> 
> 
> 

Yes, that would be what the line `printf("%f\n", *target);` achieves. You need to print each item in `target` from inside a `for` loop.
You have to print your "target" like you scan your "source" to print all element of array one by one.