Program to calculate the average of n numbers given by the user.
Okay so I have this program whose purpose is what you have read above. Its output is not quite right. I figured out what the problem is but couldn't find the solution as I am not a leet at programming (newbie actually). Here is the code:
#include <stdio.h>
int main(void) {
    char user_data[100];
    long int sum = 0;
    double average;
    unsigned int numbers_count = 0;
    for (int i = 0; i <= 99; ++i)
        user_data[i] = 0;
    unsigned int numbers[100];
    for (int i = 0; i <= 99; ++i)
        numbers[i] = 0;
    printf("Please enter the numbers:");
    fgets(user_data, sizeof(user_data), stdin);
    int i = 0;
    while (user_data[i] != 0) {
        sscanf(user_data, "%u", &numbers[i]);
        ++i;
    }
    i = 0;
    while (numbers[i] != 0) {
        sum += numbers[i];
        ++i;
    }
    i = 0;
    while (numbers[i] != 0) {
        ++numbers_count;
        ++i;
    }
    average = (float)sum / (float)numbers_count;
    printf("\n\nAverage of the entered numbers is: %f",average);
    return 0;
}
Now here comes the problem.
When I enter an integer say 23, it gets stored into the user_data in two separate bytes. I added a loop to print the values of user_data[i] to figure out what was wrong.
    i = 0;
    while (i <= 99) {
        printf("%c\n",user_data[i]);
        ++i;
    }`
and the result was this
This was the first problem, here comes the second one. I added another loop same like the above one to print the numbers stored in numbers[100] and figure out what was wrong and here is the output. Here's a sample
Now my main question is
How to extract the full number from user_data?
 
     
     
     
    