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 }