seqlist c实现

顺序表,其实很多地方同数组很有相似,可以说数组也是一种顺序表。

对顺序表的基本操作有,初始化,插入元素,删除元素,访问表,元素定位,制空表,删除顺序表。

发一段功能集成代码。

--------------------------------    end      -----------------------------------

函数的源代码如下:
---------------------------------------------------------------------
-------/* 输入函数:void creat(STUDINFO stud[],int Num);*/-----------
---------------------------------------------------------------------
void creat(STUDINFO stud[],int Num)
{
    int i;
    for(i=0;i<Num;i++)
    {
        scanf("%d",&stud[i].number);
        scanf("%s",stud[i].name);
        scanf("%d%d%d",&stud[i].chinese,&stud[i].math,&stud[i].Physics);
        stud[i].totalScore=stud[i].chinese+stud[i].math+stud[i].Physics;//求总分
    }
}
        ------------------------------------------------------------------------
-------/*排名次的函数void sort(STUDINFO stud[],int n);*/----------------
------------------------------------------------------------------------
    void sort(STUDINFO stud[],int n)
{
    int i,j,t=1;    //定义变量t为名次,初始值为1,在之后的比较自加
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++) //    两重循环,使所有数据元素两两比较
        {
        if(stud[i].totalScore < stud[j].totalScore) //遍历整个数据对象,如果找到总分比该数据元素的总分大,排名+1
        t++;
        }
    
        stud[i].order=t;
        t=1;
    }
        
}
------------------------------------------------------------------------
-------/*输出的函数void disp(STUDINFO stud[],int n);*/-----------------
------------------------------------------------------------------------
void disp(STUDINFO stud[],int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        printf("%d %-20s %d %d %d %d %3d\n",stud[i].number,stud[i].name,stud[i].chinese,stud[i].math,stud[i].Physics,stud[i].totalScore,stud[i].order);
    }
}

 1 #include<stdio.h>
 2 
 3 #define MaxNum 20
 4 
 5 typedef struct studInfo{
 6 int number;//学号
 7 char name[20];//姓名
 8 int chinese; //语文
 9 int math;//数学
10 int Physics;//物理
11 int totalScore;//总分
12 int order;//名次
13 } STUDINFO;
14 void creat(STUDINFO stud[],int Num);
15 void sort(STUDINFO stud[],int n);
16 void disp(STUDINFO stud[],int n);
17 int main()
18 {
19     int Num;    //实际人数
20     STUDINFO  stud[MaxNum];
21     int i;
22     printf("请输入学生人数(要小于等于%d)\n",MaxNum);
23     scanf("%d",&Num);
24     creat(stud,Num);
25     sort(stud,Num);
26     disp(stud,Num);
27     getchar();getchar();getchar();getchar();getchar();getchar();
28     return 0;
29 }
30 void creat(STUDINFO stud[],int Num)
31 {
32     int i;
33     for(i=0;i<Num;i++)
34     {
35         scanf("%d",&stud[i].number);
36         scanf("%s",stud[i].name);
37         scanf("%d%d%d",&stud[i].chinese,&stud[i].math,&stud[i].Physics);
38         stud[i].totalScore=stud[i].chinese+stud[i].math+stud[i].Physics;
39     }
40 }
41 void sort(STUDINFO stud[],int n)
42 {
43     int i,j,t=1;
44     for(i=0;i<n;i++)
45     {
46         for(j=0;j<n;j++)
47         {
48         if(stud[i].totalScore < stud[j].totalScore)
49         t++;
50         }
51     
52         stud[i].order=t;
53         t=1;
54     }
55         
56 }
57 void disp(STUDINFO stud[],int n)
58 {
59     int i;
60     for(i=0;i<n;i++)
61     {
62         printf("%d %-20s %d %d %d %d %3d\n",stud[i].number,stud[i].name,stud[i].chinese,stud[i].math,stud[i].Physics,stud[i].totalScore,stud[i].order);
63     }
64 }

 

posted @ 2015-03-17 18:51  诀别诗  Views(341)  Comments(0Edit  收藏  举报