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

 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 */

posted on 2012-09-06 14:21  Your Song  阅读(2306)  评论(0编辑  收藏  举报

导航