用vs2012写的C语言程序,出了点问题,求大神来纠错

这个程序是输入学生的一些信息,然后以一定的格式输出

include

include

int main ()
{
char a,b;
int c,d;
float e;
printf ("输入学生的姓名:\n");
scanf("%c",&a);
printf("输入学生的性别:\n");
scanf("%c",&b);
printf("输入学生的年龄:\n");
scanf("%d",&c);
printf("输入学生的学号:\n");
scanf("%d",&d);
printf("输入学生的学成绩:\n");
scanf("%f",&e);
printf ("姓名:%c\t性别:%c\t年龄:%d\t学号:%d\t成绩:%f\n",a,b,c,d, e);
system("pause");
return 0;
}
我的想法是提示一个打一个值,但是当我输入完名字后下面的printf便全部弹出来了,我没法再输入,我想知道这是为什么,还有怎么改,万分感激

#include
int main ()
{
char* a,b;
int c,d;
float e;
printf ("输入学生的姓名:\n");
scanf("%s",&a);
printf("输入学生的性别:\n");
scanf("%s",&b);
printf("输入学生的年龄:\n");
scanf("%d",&c);
printf("输入学生的学号:\n");
scanf("%d",&d);
printf("输入学生的学成绩:\n");
scanf("%f",&e);
printf ("姓名:%s\t性别:%s\t年龄:%d\t学号:%d\t成绩:%f\n",a,b,c,d, e);
system("pause");
return 0;
}

主要原因还是类型没搞清楚,首先姓名和性别都是字符串,所以定义的时候要用char*;然后就是scanf语句和最后一条printf语句中的%c要改成%s。这样就差不多了