希望使用动态数组解决问题,自己写了一个但是总是不能实现功能,希望帮忙修改一下
可以贴出来看看
#include <stdio.h>
typedef struct _student
{
char name[20];
float score;
}student;
int main()
{
student *pStu = NULL;
int n,max1=0,max2=0;
printf("请输入学生人数:");
scanf("%d",&n);
pStu = (student *)malloc(sizeof(student)*n);
for(int i=0;i<n;i++)
{
printf("请输入第%d个学生的姓名和成绩:",i+1);
scanf("%s%f",pStu[i].name,&pStu[i].score);
if(i==0)
continue;
if(pStu[i].score > pStu[max1].score)
{
max2 = max1;
max1 = i;
}
else if(pStu[i].score > pStu[max2].score)
max2 = i;
}
printf("最高分学生姓名为:%s,成绩为:%.1f\n",pStu[max1].name,pStu[max1].score);
printf("次高分学生姓名为:%s,成绩为:%.1f\n",pStu[max2].name,pStu[max2].score);
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!