c语言课本内容,请问哪里出错了

#include <stdio.h>
struct student
{
int num;
char name;
float score;

};
int main()

{

struct student stu[5]={

{10101,"li",100},{10102,"zhang",89},{10103,"zhao",90},
{10104,"qian",87},{10105,"sun",99}
};

struct student temp;
const int n=5;
int i,j,k;
printf("输入编号");
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(stu[j].score>stu[k].score)
k=j;
temp=stu[k];
stu[k]=stu[i];
stu[i]=temp;
}
for(i=0;i<n;i++)

  printf("%6d %8s %6.2f",stu[i].num,stu[i].name,stu.score);
  printf("\n"); 

return 0;
}

这是要是实现啥功能呢
printf("输入编号"); 也没看见输入语句啊
name应该定义为数组,修改如下:

#include <stdio.h>
struct student
{
    int num;
    char name[10];
    float score;
};
int main()
{
    struct student stu[5]={
        {10101,"li",100},{10102,"zhang",89},{10103,"zhao",90},
        {10104,"qian",87},{10105,"sun",99}};
    struct student temp;
    const int n=5;
    int i,j,k;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
            if(stu[j].score>stu[k].score)
                k=j;
        temp=stu[k];
        stu[k]=stu[i];
        stu[i]=temp;
    }
    for(i=0;i<n;i++)
        printf("%6d %8s %6.2f\n",stu[i].num,stu[i].name,stu[i].score);
    return 0;
}