这道题为什么编绎成功后执行异常呢

这道题为什么编绎成功后执行错误呢?
这是《C primer plus》的课后题。
#include <stdio.h>
int main()
{
 int age1;
 printf("input your age\n"); 
 scanf("%d",age1);
 float age2=age1*3.156E7;
 printf("your age is %f s\n",age2);  
 system("pause");  
   
}
我输入年龄“19”后。就显示程序错误。哪里错啦?看半天没看出来。

浮点数的记数法改了几次都还是不成功。奇怪。

------解决方案--------------------
C/C++ code

[color=#FF0000]scanf("%d",&age1);[/color]

------解决方案--------------------
C/C++ code

scanf("%d",&age1);//scanf("<格式化字符串>",<地址表>);