在strcpy(stu[0].name,gets(a1)); 的前面加入fflush(stdin);,保证可以。原因就是:scanf("%s",str1); 这条指令输入后留下了个回车符号,所以要清除此处的输入流。