动态构造存放学生信息的结构体数组,按分数排序输出

 1  /*
 2  动态构造存放学生信息的结构体数组,按分数排序输出
 3  */
 4 # include <stdio.h>
 5 # include <malloc.h>
 6 
 7  struct Student
 8 {
 9      int age;
10      float score;
11      char name[ 100];
12 
13 };
14 
15  int main( void)
16 {
17      int i,j;
18      int len;
19      struct Student * pArr;
20      struct Student t;   // 临时变量要定义成 struct Student t
21 
22     printf( " 请输入学生的个数:\n ");
23     printf( " len =  ");
24     scanf( " %d ", &len);
25     
26     pArr = ( struct Student *)malloc(len *  sizeof( struct Student));
27 
28      for(i= 0; i<len; i++)
29     {
30         printf( " 请输入第%d位学生信息\n ", i+ 1);
31         printf( " age =  ");
32         scanf( " %d ", &pArr[i].age);
33 
34         printf( " name = : ");
35         scanf( " %s ",pArr[i].name);  // name是数组名,本身已经是数组首元素的地址。pArr[i].name不能写成&pArr[i].name
36 
37         printf( " score = : ");
38         scanf( " %f ", &pArr[i].score);
39     }
40      // 排序
41       for(i= 0; i<len- 1; i++)
42     {
43          for(j= 0; j<len- 1-i; j++)
44         {
45              if(pArr[j].score >pArr[j+ 1].score)   //  > 是升序,<是升序
46              {
47                 t = pArr[j];
48                 pArr[j] = pArr[j+ 1];
49                 pArr[j+ 1] = t;
50             }
51         }
52     }
53      // 输出
54       for(i= 0; i<len;i++)
55     {
56         printf( " 第%d位学生信息\n ", i+ 1);
57         printf( " age = %d\n ",pArr[i].age);    
58         printf( " name = %s\n ",pArr[i].name);        
59         printf( " score = %f\n ", pArr[i].score);
60         printf( " \n\n ");
61     }
62 
63      return  0;
64 }
65  /*
66  在Vc++6.0中显示的结果是:
67  =================================================
68  请输入学生的个数:
69  len = 3
70  请输入第1位学生信息
71  age = 21
72  name = :张三
73  score = :39
74  请输入第2位学生信息
75  age = 24
76  name = :李四
77  score = :21
78  请输入第3位学生信息
79  age = 22
80  name = :王五
81  score = :99
82  第1位学生信息
83  age = 24
84  name = 李四
85  score = 21.000000
86 
87 
88  第2位学生信息
89  age = 21
90  name = 张三
91  score = 39.000000
92 
93 
94  第3位学生信息
95  age = 22
96  name = 王五
97  score = 99.000000
98  ===================================================
99  */

转载于:https://www.cnblogs.com/jssong20000/archive/2012/09/06/2673412.html

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值