是一样的吧。你的“请输入学生信息”那一条的后面没有\n,就没有换行
#include<stdio.h>
#include<malloc.h>
void inputstudent(struct studentp);
void outstudent(struct studentp);
struct student
{
char name[100];
float score;
char sex;
};
void main()
{
int len;
printf("请输入共有多少学生");
scanf_s("%d", &len);
struct student st;
inputstudent(&st,len);
outstudent(&st,len);
}
void inputstudent(struct student *p,int len)
{
int i;
p = (struct student*)malloc(len * sizeof(struct student));
for (i = 0; i < len; i++)
{
printf("请输入%d学生信息\n",i+1);
printf("请输入第%d学生的姓名\n",i+1);
scanf_s("%s",p[i].name,100);
printf("请输入第%d学生的成绩\n",i+1);
scanf_s("%f", &p[i].score);
printf("请输入第%d学生的性别\n",i+1);
scanf_s("%c/n", &p[i].sex,1);
//getchar(p[i].sex);
}
free(p);
}
void outstudent(struct student *p,int j)
{
int i;
for (i = 0; i < j; i++)
{
printf("第%d学生信息", i + 1);
printf("第%d学生的姓名;%s\n",*p->name);
printf("第%d学生的成绩;%f\n", *p->score);
printf("第%d学生的性别;%c\n", *p->sex);
}
}