数据结构完善代码求助
以下例代码为主,完善代码中学号不能重复,成绩输入范围在0到100,插入函数中不能插入相同信息的内容等问题,感谢!!!!!
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#define MAXSIZE 100//定义数组的最大长度为100
int renshu;//人数
int error=0;
typedef struct Student{ //存放学生信息的表
char name[20]; //姓名
int num; //学号
int suanfa; //算法
int DS; //数据结构
int sum; //总成绩
}Student;
typedef struct{
Student stu[MAXSIZE]; //线性表占用的数组空间
int last; //最后一个元素的下标
}SeqList;//SeqList顺序表
bool is_same(SeqList *L);//判断学号是否重复的函数的声明
//顺序表的输入
void InList(SeqList *L,int i){ //逐个输入学生信息
int x;
printf("请输入学生数量:");
scanf("%d",&x);
renshu=x;
for(i=1;i<=x;i++){
printf("第%d位学生信息\n",i);
printf("———————————————\n");
printf("姓名:");
scanf("%s",&L->stu[i].name);
printf("———————————————\n");
printf("学号:");
scanf("%d",&L->stu[i].num);
printf("———————————————\n");
printf("算法成绩:");
scanf("%d",&L->stu[i].suanfa);
printf("数据结构成绩:");
scanf("%d",&L->stu[i].DS);
printf("———————————————\n");
L->stu[i].sum=L->stu[i].DS+L->stu[i].suanfa; //计算总成绩
}
L->last=x;
printf("\n");
}
//输出顺序表
void OutList(SeqList *L,int i){ //输出总成绩
for(i=1;i<=L->last;i++){
printf("姓名:%s 学号:%d 数据结构:%d 算法:%d 总分:%d\n",L->stu[i].name,L->stu[i].num,L->stu[i].DS,L->stu[i].suanfa,L->stu[i].sum);
}
printf("\n");
}
//顺序表的查询
void Find(SeqList *L){ //顺序表的查询,按照学号查询该学生成绩
int i=1;
int n;
if(L->last<1){ //判断是否为空表
printf("没有成绩表\n");
return;
}
printf("输入要查找学生的学号\n");
scanf("%d",&n);
while(i<=L->last && L->stu[i].num!=n){ //循环查找对应学号的下标
i++;
}
if(i<=L->last){
printf("该学生姓名为:%s 学号为:%d 数据结构成绩为:%d 算法成绩为:%d 总分为:%d\n",L->stu[i].name,L->stu[i].num,L->stu[i].DS,L->stu[i].suanfa,L->stu[i].sum);
return;
}
if(i>L->last){
printf("学号错误,未查询到该学生\n");
return;
}
}
//顺序表的删除
int Delete(SeqList *L, int i){ //从L中删除指定位序i的元素,该元素数组下标为i
int j;
int k;
printf("请输入要删除的学生学号:");
scanf("%d",&i);
if(L->last<1){ //检查是否为空表
printf("空表!");
return error;
}
for(k=1;k<=L->last;k++){
if(L->stu[k].num==i)
break;
}
if(k>L->last){
printf("未找到该学生!\n");
return error;
} else{
for(j=k;j<=L->last;j++)
L->stu[j]=L->stu[j+1]; //将位序j+1及以后的元素前移
L->last--; //last仍指向最后元素
return true;
}
}
//顺序表的插入
int Insert(SeqList *L,int i,Student e){
//在L的指定位序i中插入一个新元素e;位序i元素的数组位置下表是i
int j;
if(L->last==MAXSIZE){ //表空间已满,不能插入
printf("表满\n");
return 0;
}
if(i<1 || i>L->last+2){ //检查插入位序的合法性:是否在1~n。n为当前元素个数,即last
printf("位序不合法\n");
return 0;
}
for(j=L->last;j>=i-1;j--) //last指向序列最后元素
L->stu[j+1]=L->stu[j];
L->stu[i]=e;
L->last++;
return 1;
}
//主函数
int main(){
int N=1,i,j;
SeqList L;
Student e,g;
int renshu,a;
printf("**********************\n");
printf("*------选择操作------*\n");
printf("*------1 登记--------*\n");
printf("*------2 输出--------*\n");
printf("*------3 查询--------*\n");
printf("*------4 删除--------*\n");
printf("*------5 插入--------*\n");
printf("*------0 退出--------*\n");
printf("**********************\n");
while(N){
printf("请选择操作\n");
scanf("%d",&N);
if(N==1){ //登记成绩
InList(&L,i);
}
else if(N==2){ //输出成绩
OutList(&L,i);
}
else if(N==3){ //查询
Find(&L);
}
else if(N==4){ //删除
if(Delete(&L,j)){
renshu--;
printf("删除成功\n");
}else {
printf("删除失败\n");
}
}
else if(N==5){ //插入
printf("请输入要插入的位置:");
scanf("%d",&a);
printf("请输入学生姓名:");
scanf("%s",&g.name);
printf("请输入学生学号:");
scanf("%d",&g.num);
printf("请输入学生算法成绩:");
scanf("%d",&g.suanfa);
printf("请输入学生数据结构成绩:");
scanf("%d",&g.DS);
g.sum=g.suanfa+g.DS;
if(Insert(&L,a,g)){
renshu++;
printf("插入成功\n");
}else {
printf("插入失败\n");
}
}else if(N==0){
printf("退出成功,按任意键结束\n");
exit(0);
}
}
return 0;
}
相关推荐
Vue基于springboot的乡村生态旅游平台_k2864o48毕业设计源码数据库.zip
Vue基于springboot的乡村生态旅游平台_k2864o48毕业设计源码数据库
Python3 datetime时区避坑指南
原生datetime.now()获取本地时间,不带时区属性,属于 naive时间,跨服务器比对会报错。带时区时间使用datetime.astimezone,强制绑定东八区时区。禁止手动加减8小时修改时差,夏令时更新会导致时间错误。时间计算:timedelta直接实现天数、小时增减,无需手动换算秒数。字符串解析使用strptime,格式化使用strftime,格式符号严格区分大小写,%Y四位年份、%y两位年份极易写错。线上时间异常大多源于时区不统一。 yc.ahsalar.com qsvsnks.yihucx.com tongjiang.xilaohan.com lq.aasmile.com xj.banutech.net
前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-jcbbroJ3l1792421687
内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;jcbbroJ3l1792421687 www.kfshiye.com www.wap.kfstjx.com www.kuaicai-mro.com lianyingjs.com www.kdd888.com
国央企如何通过数据驱动实现数字化转型目标?.docx
国央企如何通过数据驱动实现数字化转型目标?
Vue基于Spring Boot的紧急物资管理系统的设计与实现_05ei8754毕业设计源码数据库.zip
Vue基于Spring Boot的紧急物资管理系统的设计与实现_05ei8754毕业设计源码数据库.zip


