#include <stdio.h>
#include <malloc.h>
struct Student
{
int age;
float score;
char name[100];
}
int main(void)
{
int len;
struct Student * pArr;
int i,j;
struct Student t;
printf("请输入学生个数:\n");
printf("len = ")
scanf("%d",&len);
//动态构造以为数组
pArr =(struct Student*)malloc(len * sizeof(struct Student));
for(i=0; i<len; ++i)
{
printf("请输入第%d个学生的信息:\n", i+1);
printf("age =");
scanf("%d",&pArr[i].age);
printf("name =");
scanf("%s", pArr[i].name);//name是数组名,本身就已经是数组首元素的地址,所以不能改成&pARR[i]
printf("score =");
scanf("%f", &pArr[i].score);
}
//学生成绩升序排列,冒泡
for(i=0; i<len-1; ++i)
{
for(j=0; j<len-1-i; ++j)
{
if(pArr[j].score > pArr[j+1].score)
{
t =pArr[j];
pArr[j] =pArr[j+1];
pArr[j+1] =t;
}
}
}
//输出
for(i=0; i<len; ++i)
{
printf("第%d个学生的信息:\n", i+1);
printf("age =%d\n",pArr[i].age);
printf("name =%s\n",pArr[i].name);
printf("score =%f\n",pArr[i].score);
printf("\n")
}
return 0;
}
动态构造
最新推荐文章于 2022-07-24 15:24:25 发布