This is my first here - i love this website. I have been teaching myself C and have a very beginner question that is probably easily answerable. Why does the following program give me garbage for the "long" type value? Will any other data type besides "float" work? Why not? Thanks in advance.

Code:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int yearsold;
    float floatsecondsold;
    long longsecondsold;
    printf("Please enter how many years old you are!\n");
    scanf("%d", yearsold);
    floatsecondsold=yearsold*3.156e7;
    longsecondsold=yearsold*3.156e7;
    printf("According to float, you are %f seconds old.  According to long, you are %f seconds old.\n", floatsecondsold, longsecondsold);
    return 0;
}