head.h
#ifndef __head_h_
#define __head_h_
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#define MAXSIZE 20;
typedef char datatype[20];
typedef struct data
{
datatype name;
int age;
int score;
int number[12];
int len;
}*Linklist,Node;
Linklist CreatLink(int n);
void Input(Linklist p,int n);
void Output(Linklist p,int n);
void DeletData(Linklist p,datatype *e);
#endif
text.c
#include"head.h"
//为数据创建空间
Linklist CreatLink(int n)
{
Linklist q=(Linklist)malloc(sizeof(Node)*n);
if(q==NULL)
{
printf("创建失败\n");
return NULL;
}
return q;
}
void Input(Linklist p,int n)
{
if(p==NULL)
return;
for(int i=0;i<n;i++)
{
printf("输入姓名\n");
scanf("%s",(p+i)->name);
printf("年龄\n");
scanf("%d",&(p+i)->age);
printf("输入手机号\n");
scanf("%s",(p+i)->number);
printf("输入分数\n");
scanf("%d",&(p+i)->score);
p->len++;
}
}
void Output(Linklist p,int n)
{
for(int i=0;i<n;i++)
{
printf("姓名%s\t年龄%d\t手机号%s\t分数%d\n",(p+i)->name,(p+i)->age,(p+i)->number,(p+i)->score);
}
}
void DeletData(Linklist p,datatype *e)
{
int i=0;
for(i=0;i>p->len;i++)
{
if(!strcmp((p+i)->name,*e))
{
while(i<p->len)
{
(p+i)->name=(p+i+1)->name;
i++;
}
p->len--;
printf("删除成功\n");
}
}
}
mian.c
#include "head.h"
int main(int argc, const char *argv[])
{
int n;
printf("请输入学生个数\n");
scanf("%d",&n);
getchar();
//创建结构体
Linklist p=CreatLink(n);
//输入数据
Input(p,n);
//输出数据
Output(p,n);
printf("输入删除学生姓名");
datatype e;
scanf("%s",e);
DeletData(p,&e);
// printf("排序后\n");
return 0;
}