結構體數組

一個結構體變量中可以存放一組具有內在聯繫的數據(如一個學生的學號、姓名、成績等數據)。如果有10個學生的數據需要進行運算,顯然要用到數組,這時就引入了結構體數組的概念。結構體數組與數值型數組的不同之處就在於每個數組元素都是一個結構體類型的數據,他都包括各個成員項。

說明:

(1)定義結構體數組的一般形式是

①           struct 結構體名

                     {

                       成員表列

                       }數組名[數組長度];

②先聲明一個結構體類型(如:struct Kabuda),然後再用此類型定義結構體數組;

如:struct Kabuda time[5];

(2)對結構體數組初始化的形式是定義在數組的後面加上“={初值表列};”

如:struct Kabuda time[5]={"shuaibin",0,1};


結構體數組應用舉例

有n個學生的信息(包括學號、姓名、成績)、要求按照成績的高低順序排列各學生的信息


   #include<stdio.h>

    struct Student

                       {

                       int num;

                       char name[20];

                       float score;

                        };                                                                                                        //聲明結構體類型

      int main()

                      {

                        struct Student stu[5]={

                                                               { 0001,"hanaoyu",88.2},                                     

                                                               { 0002, "lvbofei", 98.5},

                                                               { 003,"fengbin",  92.0},   

                                                               {004,"wuguangyao",55.1},

                                                              {006,"chuchengwei",99.0}

                                                                 };                                                      //定會以結構體數組並初始化

                          struct Student temp;                                                             //定義結構體變量temp,用作臨時交換變量

                          const int n=5;                                                                      //定義常變量n

                          int i , j , k;

                          for(i=0 ; i<n-1 ; i++)                                                          //選擇排序法

                                                      {

                                                    k=i;

                                                    for(j=i+1 ; j<n ; j++)

                                                              if(stu[j].score > stu[k].score)    

                                                                k=j;

                                                                temp=stu[k];

                                                                 stu[k]=stu[i];

                                                                  stu[i]=temp;                                                               

                                                        }

                                       return 0;

                        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章