运行后只能输入姓名,别的不能运行,咋回事

运行后只能输入姓名,别的不能运行,怎么回事?
#include <stdio.h>
int main()
{
 int x;
 char y;
 printf("请输入学生姓名:\n");
 scanf("%c",&y);
 printf("请输入学生成绩:\n");
 scanf("%d",&x);
 if(x>=0 && x<60) printf("%c,的成绩为:%d分 评价:不及格\n",y,x);
 else if(x>=60 && x<80) printf("%c,的成绩为:%d分 评价:及格\n",y,x);
 else if(x>=80 && x<90) printf("%c,的成绩为:%d分 评价:良好\n",y,x);
 else if(x>=90 && x<=100) printf("%c,的成绩为:%d分 评价:优秀\n",y,x);  
 else printf("您的输入分数的是%d,请重新输入\n",x);
 return 0;

}

------解决方案--------------------
scanf("%c",&y);应该是%s阿!!
------解决方案--------------------
姓名只用一个字符?
------解决方案--------------------
不知道你使用的工具是哪个 我用VS2005测试过这段代码没问题
------解决方案--------------------
C/C++ code
#include <stdio.h>
int main()
{
 int x;
 char y[50];
 printf("请输入学生姓名:\n");
 scanf("%s",&y);
 printf("请输入学生成绩:\n");
 scanf("%d",&x);
 if(x>=0 && x<60) printf("%s的成绩为:%d分 评价:不及格\n",y,x);
 else if(x>=60 && x<80) printf("%s的成绩为:%d分 评价:及格\n",y,x);
 else if(x>=80 && x<90) printf("%s的成绩为:%d分 评价:良好\n",y,x);
 else if(x>=90 && x<=100) printf("%s的成绩为:%d分 评价:优秀\n",y,x);   
 else printf("您的输入分数的是%d,请重新输入\n",x);
 return 0;

}

------解决方案--------------------
把 char y; 改成 char y[100]; scanf("%s", y);
------解决方案--------------------
#include <stdio.h>
int main()
{
 int x;
 char y[20];//改动,还有下面的输出我也改了,对比一下 
 printf("请输入学生姓名:\n");
 scanf("%s",&y);
 printf("请输入学生成绩:\n");
 scanf("%d",&x);
 if(x>=0 && x<60) printf("%s,的成绩为:%d分 评价:不及格\n",y,x);
 else if(x>=60 && x<80) printf("%s,的成绩为:%d分 评价:及格\n",y,x);
 else if(x>=80 && x<90) printf("%s,的成绩为:%d分 评价:良好\n",y,x);
 else if(x>=90 && x<=100) printf("%s,的成绩为:%d分 评价:优秀\n",y,x);
 else printf("您的输入分数的是%d,请重新输入\n",x);
 return 0;