1. 程式人生 > >數據結構 one

數據結構 one

std 信息 amp delete sca i++ stdio.h ++ student

假設有結構如下:

struct student

{ char sno[11];//學號

char sname[8];//姓名

char sgrade[6];//班級

int sage;//年齡

}

完成如下功能:

1、把十名同學的信息存入順序表中,並按行顯示;

2、插入一名新同學的信息,並把插入後的所有學生的信息顯示出來;

3、如有某個同學退學,刪除該同學的信息,並顯示所有同學的信息;

4、輸入某個學生的學號,在順序表中查找,如找到,顯示該同學的信息,如 沒找到,顯示“沒找到!”;

代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student
{
char sno[11];//學號
char sname[8];//姓名
char sgrade[6];//班級
int sage;//年齡
};
void create();//創建
void list(); //遍歷輸出
void insert();//插入
void Delete(char x[]);//刪除
void find(char x[]);//查找
struct student s[20];
int m=10;//記錄長度
int main()
{
char str1[10];
char str2[10];
create();
list();
insert();
list();
printf("請輸入要刪除的學生學號\n");
scanf("%s",str1);
Delete(str1);
list();
printf("請輸入要查找的學生學號\n");
scanf("%s",str2);
find(str2);
}
void create()
{

for(int i=0;i<m;i++)
{
if(i==0)
{
printf("請輸入十名學生的學號 姓名 班級:\n");
scanf("%s%s%s%d",s[i].sno,s[i].sname,s[i].sgrade,&s[i].sage);
}
else
scanf("%s%s%s%d",s[i].sno,s[i].sname,s[i].sgrade,&s[i].sage);
}
}
void list()
{
printf("學生信息顯示如下:\n");
for(int i=0;i<m;i++)
{

printf("%s %s %s %d",s[i].sno,s[i].sname,s[i].sgrade,s[i].sage);
printf("\n");
}

}
void insert()
{
printf("請輸入要插入學生的信息\n");
scanf("%s%s%s%d",s[m].sno,s[m].sname,s[m].sgrade,&s[m].sage);
m++;
}
void Delete(char x[])
{ int flag=0;
for(int i=0;i<m;i++)
{
if(strcmp(x,s[i].sno)==0)
{
flag=1;
while(i<m-1)
{
s[i]=s[i+1];
i++;
}
m--;
break;

}

}
if(flag==0)
printf("沒找到!");
}
void find(char x[])
{
int flag=0;
int n;
for(int i=0;i<m;i++)
{
if(strcmp(x,s[i].sno)==0)
{
flag=1;
n=i;
break;
}
}
if(flag==1)
{
printf("要查找的學生信息如下:\n");
printf("%s %s %s %d",s[n].sno,s[n].sname,s[n].sgrade,s[n].sage);
}

else
printf("沒找到!");
}


數據結構 one