Fill in the three missing functions in this code, so that numbers are printed out in order. Note that you can debug print_numbers independently.
#include <stdio.h>
#include <stdlib.h>
struct node {
  int value;
  struct node *next;
};
struct node *read_numbers(void){
  struct node *first = NULL;
  int n;
  printf("Enter a series of integers" 
         " (0 to terminate): ");
  for (;;) {
    scanf("%d", &n);
    if (n == 0)
      return first;
    first = add_to_list(first, n);
  }
}
struct node *reverse(struct node *list){
}
struct node *add_to_list(struct node *list, n){
}
void print_numbers(struct node *list){
}
int main(void){
  struct node *list=NULL;
  list=read_numbers();
  list=reverse(list);
  printf("output: \n");
  print_numbers(list);
}