数据结构 one
Posted Hztiger
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构 one相关的知识,希望对你有一定的参考价值。
假设有结构如下:
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的主要内容,如果未能解决你的问题,请参考以下文章