#include
int main()
{
int N,i,a[100],max=0,k;
char b[20];
scanf("%d",&N); //输入人数
for(i=0;i<N;i++)
{
scanf("%d %s",&a[i],b[i]); //输入成绩 与 姓名
}
for(i=0;i<N;i++)
{
if(a[i]>max)
{
max=a[i]; //查找最大成绩
k=i;
}
}
printf("%s",b[k]); //输出最大成绩姓名
return 0;
}
b[i]是不是少一个&符号在第十行
是只输入了学生个数就结束了? 你这没有换行,别是按回车了
字符串数组应该用二维数组,或者指针数组,把char b[20]改为char[X][20],X可以设置为与你的N相等。
使用scanf注意,这个函数不吃回车,你输入一个字符串收,回车会缓存在缓存中,下个scanf会将回车读走的,建议使用scanf后,跟一个getchar(),就能解决这个问题了。