顺序表——学生信息——C语言

#include 
#include 
#define MAXSIZE 100
#define OK 1
#define ERROR 0 
typedef struct{
    char xuehao[20];
    char name[20];
    int grade;
}student;
typedef struct{
    student *elem;
    int number;
}SqList;

int InitList(SqList *L){//初始化 
    L->elem=(student *)malloc(MAXSIZE*sizeof(student));
    if(!L->elem){
        return ERROR;
    }else{
        L->number=0;
        return OK;
    }
}
void Insert(student *p){//创建新的学生 
    printf("请输入学号:");
    scanf("%s",&p->xuehao); 
    printf("请输入姓名:");
    scanf("%s",&p->name); 
    printf("请输入成绩:");
    scanf("%d",&p->grade); 
} 

void Output(student p){//显示学生信息 
    printf("学生学号为:%s\n",p.xuehao);
    printf("学生姓名为:%s\n",p.name);
    printf("学生成绩为:%d\n",p.grade);
} 

 
int Add(SqList *L,int i,student e){//添加学生 
    if(i<1||i>L->number+1)
        return ERROR;
    if(L->number==MAXSIZE)
        return ERROR;
    int j=L->number-1;
    for(j;j>=i-1;j--){
        L->elem[j+1]=L->elem[j];
    }
    L->elem[i-1]=e;
    L->number++;
    return OK;      
}
int update(SqList *L,int i,student e){//修改学生信息学生 
    if(i<1||i>L->number+1)
        return ERROR;
    if(L->number==MAXSIZE)
        return ERROR;
    int j=L->number-1;
    for(j;j>=i-1;j--){
        L->elem[j+1]=L->elem[j];
    }
    L->elem[i-1]=e;
    return OK;      
}
student ListDelete(SqList *L,int i){//删除学生 
    if(i<1||i>L->number){
        printf("输入的i不合法!\n");
    }
        
    int j;
    student o= L->elem[i-1]; 
    for(j=i;j<=(L->number-1);j++){
        L->elem[j-1]=L->elem[j];
    }   
    --L->number;
    return o;
}  
void showAll(SqList L){//展示所有信息 
    int i=0;
    for(i;i

注意

1.strcmp(S1,S2)函数,用于比较字符串:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
当s1 当s1=s2时,返回值= 0;
当s1>s2时,返回正数。
2.数组的使用
int a[];
scanf("%d",&a);//向数组中写入内容,不要加[];
max(a);//像函数传递数组时,不加[];
int max(int a[]){}//作为形式参数要加[];

你可能感兴趣的:(顺序表——学生信息——C语言)