At first reading, the solution to a problem like this is to loop until the user inputs a "done" character. This could be a letter Q for example. By reading in the input as a string you can process both numbers and letters. The code below processes one input at a time (followed by ) - with the possibility to either Quit (terminate program), or Clear (restart calculation, keep program running):
printf("Enter numbers to average. Type Q to quit, or C to clear calculation.\n");
char buf[256];
double sum=0, temp;
int ii = 0;
while(1)
{
    printf("Input: \t");
    fgets(buf, 255, stdin);
    if (tolower(buf[0])=='q') break;
    // allow user to "clear" input and start again:
    if (tolower(buf[0])=='c') {
      sum = 0;
      ii = 0;
      printf("Calculation cleared; ready for new input\n");
      continue;
    }
    ii++;
    sscanf(buf, "%lf", &temp);
    sum += temp;
    printf("At this point the average is %lf\n", sum / (double)ii);
}
printf("Done. The final average of the %d numbers is %lf\n", ii, sum / ii);
EDIT Following some back-and-forth in the comments to this and other answers, here is a solution that addresses your problem. Code has been tested - it compiles, runs, gives expected results:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void){
  double sum=0;
  int ii=0;
  char buf[256], *temp;
  char *token;
  printf("Enter the numbers to average on a single line, separated by space, then press <ENTER>\n");
  fgets(buf, 255, stdin);
  temp = buf;
  while((token=strtok(temp, " ")) != NULL) {
    temp = NULL; // after the first call to strtok, want to call it with first argument = NULL
    sum += atof(token);
    ii++;
    printf("Next token read is number %d: '%s'\n", ii, token); // so you see what is going on
                                                               // remove in final code!!
  }
  printf("AVERAGE: ***** %lf *****\n", sum / (double)ii);
  return 0;
}
One more edit If you want to use getline instead (which you asked about in the comments - and it's even safer than fgets since it will increase the buffer size as needed), you would change to change the code a little bit. I am just giving some of the pertinent lines - you can figure out the rest, I'm sure:
double sum=0;
char *buf, *temp;      // declaring buf as a pointer, not an array
int nBytes = 256;      // need size in a variable so we can pass pointer to getline()
buf = malloc(nBytes);  // "suggested" size of buffer
printf("Enter numbers to average on a single line, separated with spaces\n")
if (getline(&buf, &nBytes, stdin) > 0) {
 temp = buf;
 // rest of code as before
}
else {
 // error reading from input: warn user
}
I am sure you can figure it out from here...