c/c++结构体的相关问题

#include <bits/stdc++.h>
using namespace std;
struct st
{
    int xuehao;
    char name[105];
    int chen;
};
void input(struct st a[],int x)
{
    for(int i=0;i<x;i++)
    {
        scanf("%d %s %d",&a[i].xuehao,&a[i].name,&a[i].chen);
    }

}


void output(struct st a[],int x)
{
    //sort(a,a+x,cmp);
 for(int i=0;i<x;i++)
     {
         printf("%d %s %d\n",&a[i].xuehao,&a[i].name,&a[i].chen);
     }
}
int main()
{
    int x;
    cin>>x;
    struct st a[105];
    input(a,x);
    output(a,x);
}

为什么结构体的xuehao和name无法存入呢?应该怎么弄?

结果如下
12671590 xiaoming 95
2671110 xiaowang 90
2671234 xiaohu 95
12670123xiaozhang 75
6409856 xiaoming6409968
6409972 xiaowang6410084
6410088 xiaohu 6410200
6410204xiaozhang6410316
Processreturned 0(0x0) execution time:4.961s
Press any key to continue.

第13行修改为:

        scanf("%d %s %d",&a[i].xuehao,a[i].name,&a[i].chen);

第24行修改为:

printf("%d %s %d\n",a[i].xuehao,a[i].name,a[i].chen);