# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & ltstring.h & gt
#define mycpy(x,y) {strcpy(x.id,y . id);strcpy(x.name,y . name);}
typedef結構學生
{
char name[8];//名稱
char id[10];//學生編號
}學生;
學生的;//定義全局變量
int n;
Void sort(student * s,int n)//從小到大冒泡排序。
{
int i,j,flag = 1;
學生臨時工;
for(I = 0;我& ltn & amp& amp旗幟;i++)
{
flag = 0;
for(j = 0;j & ltn-1;j++)
{
if(strcmp(s[j].id,s[j+1]。id)>;0)
{
flag = 1;
mycpy(temp,s[j]);
mycpy(s[j],s[j+1]);
mycpy(s[j+1],temp);
}
}
}
}
無效輸入(學生,整數)
{
int I;
Printf("請輸入學生人數:");
scanf("%d ",& ampn);
s =(student *)malloc(sizeof(student)* n);//動態打開空間
for(I = 0;我& ltn;i++)
{
Printf("請輸入%d學生的姓名:",I+1);
獲取(s[i]。姓名);
Printf("請輸入%d學生的學號:",I+1);
獲取(s[i]。id);
}
}
void輸出(student *s,int n)
{
int I;
for(I = 0;我& ltn;i++)
{
Printf("請輸入%d學生的姓名:%s\n ",i+1,s[i]。姓名);
Printf("請輸入%d學生的學號:%s\n ",i+1,s[i]。id);
}
}
Intdel _ id (student * s,char * id,int n)//根據學號刪除。
{
int i,j;
for(I = 0;我& ltn;i++)
{
if(strcmp(id,s[i])。id) == 0)
{
for(j = I;j & ltn;j++)
{
mycpy(s[j],s[j+1]);
}
n-;//總人數減壹。
打破;
}
}
}
Voiddel _ name (student * s,char * name,int n)//按名稱刪除。
{
int i,j;
for(I = 0;我& ltn;i++)
{
if(strcmp(name,s[i].id) == 0)
{
for(j = I;j & ltn;j++)
{
mycpy(s[j],s[j+1]);
}
n-;//總人數減壹。
打破;
}
}
}
int main()
{
輸入(s,n);//輸入
sort(s,n);//排序
輸出(s,n);//輸出
del_id(s,"",n);//根據學號刪除
del_name(s,"",n);//按名稱刪除
系統(“暫停”);
返回0;
}