C语言的if语句只能到第一层

为什么这个程序只运行到第一层为假时可以输出,到第二层无论scanf什么都得不到想要的结果,而且需要运行大概10秒才会结束

#include "stdio.h"

void main()

{

 char eduction;

 int working_life,skill_level;

 printf("__求职信息__\n");

 printf("学历(G.本科 M.硕士 D.博士):");

 scanf("%c",&eduction);

 if (eduction=='M' || eduction=='D'){

  printf("C/C++开发工程师任职年限:");

  scanf("%d",working_life);

  if (working_life>2)

  {

   printf("数据压缩算法(1.初学 2.一般 3.熟练 4.精通):");

   scanf("%d",&skill_level);

   if (skill_level>2&&skill_level<=4){

    printf("恭喜你获得面试机会!");

   }

   else 

    printf("抱歉,你的熟练度不够!");

    

  }

  else

  

   printf("抱歉,你的任职年限不够");

 

 }

 else 

  printf("抱歉,你的学历不够!");

 

 

}

求大佬解答

&working_life

在11行的scanf中需要用&working_life哦!注意要有&符号!