#include<stdio.h>
#include<string.h>
#include<malloc.h>
struct student
{
int num;
char name[20];
float score;
};
int main(void)
{
int len;
struct student *pArr;
int i;
printf("人数:len=") ;
scanf("%d",&len) ;
pArr=(struct student *)malloc(len *sizeof(struct student));
for(i=0;i<len;++i)
{
printf("\n请输入第%d个同学信息:",i+1);
printf("\nnum=");
scanf("%d",&pArr[i].name);
printf("\nscore=");
scanf("%f",&pArr[i].score);
}
for(i=0;i<len;++i)
{
printf("\n输出第%d个学生的信息:",i+1);
printf("\nnum=%d",pArr[i].num);
printf("\nname=%s",pArr[i].name);
printf("\nscore=%f",pArr[i].score);
}
return 0;
}
#include<stdio.h>
#include<string.h>
#include<malloc.h>
struct student
{
int num;
char name[20];
float score;
};
void sort (struct student t[],int n)
{
int i,j;
for(i=0; i<n-1; i++)
for(j=0; j<n-1-i; j++)
if(t[j].score<t[j+1].score)
{
struct student tem=t[j];
t[j]=t[j+1];
t[j+1]=tem;
}
}
int main(void)
{
int len;
struct student *pArr;
int i;
printf("人数:len=") ;
scanf("%d",&len) ;
pArr=(struct student *)malloc(len *sizeof(struct student));
for(i=0; i<len; i++)
{
printf("\n请输入第%d个同学信息:",i+1);
printf("\nnum=");
scanf("%d",&pArr[i].num);
printf("\nscore=");
scanf("%f",&pArr[i].score);
}
sort(pArr,len);
for(i=0; i<len; i++)
{
printf("\n输出第%d个学生的信息:",i+1);
printf("\nnum=%d",pArr[i].num);
//printf("\nname=%s",pArr[i].name);
printf("\nscore=%.2f",pArr[i].score);
}
return 0;
}
加上一个排序算法就可以实现。。。还有用了动态申请内存malloc,就需要free