动态构造

#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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值