17070047 / 17070047/CodeStructureCourse

张美美

未关闭
#57 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
C++
星标
16
派生
2
PR 合并指标
30 天内没有已合并 PR

描述

```c
# include "stdio.h"
# include "stdlib.h"
# include "string.h"
# define MAXSIZE 100
typedef struct{
int key;
char name[20];
int ID;
int xueyuan;
}student;
typedef struct{
student r[MAXSIZE+1];
int length;
}table;
void init(table *slt)
{
slt->length=0;
}
table creat(int n)
{
table slt;int k;
init(&slt);
for(k=1;k<=n;k++)
{
printf("\n请输入学号:");
scanf("%d",&slt.r[k].key);
printf("\n请输入姓名:");
scanf("%s",&slt.r[k].name);
printf("\n请输入身份证号:");
scanf("%d",&slt.r[k].ID);
printf("\n请输入系名:");
scanf("%d",&slt.r[k].xueyuan);
slt.length++;
}
return slt;
}
void quicksort(table *tab,int left,int right) /*按学号进行快速排序*/
{
int i,j;
if(leftr[0].key=tab->r[i].key;
tab->r[0].ID=tab->r[i].ID;
tab->r[0].xueyuan=tab->r[i].xueyuan;
strcpy(tab->r[0].name,tab->r[i].name);
do
{
while(tab->r[j].key>tab->r[0].key&&ir[i].key=tab->r[j].key;
tab->r[i].ID=tab->r[j].ID;
tab->r[i].xueyuan=tab->r[j].xueyuan;
strcpy(tab->r[i].name,tab->r[j].name);
i++;
}
while(tab->r[i].keyr[0].key&&ir[j].key=tab->r[i].key;
tab->r[j].ID=tab->r[i].ID;
tab->r[j].xueyuan=tab->r[i].xueyuan;
strcpy(tab->r[j].name,tab->r[i].name);
j--;
}
}while(i!=j);
tab->r[i].key=tab->r[0].key;
tab->r[i].ID=tab->r[0].ID;
tab->r[i].xueyuan=tab->r[0].xueyuan;
strcpy(tab->r[i].name,tab->r[0].name);
quicksort(tab,left,i-1);
quicksort(tab,i+1,right);
}
}
void print(table slt,int n) //输出函数
{
int i;
for(i=1;i<=n;i++)
{
printf("学号:%d ",slt.r[i].key);
printf("姓名:%s ",slt.r[i].name);
printf("身份证号:%d ",slt.r[i].ID);
printf("学院名:%d ",slt.r[i].xueyuan);
printf("\n");
}
}
void seqsearch(table l,int x) /*对某个学生按学号进行查找*/
{
int k=l.length-1;
while(k>=1&&l.r[k].key!=x)
k--;
printf("学号:%d ",l.r[k].key);
printf("姓名:%s ",l.r[k].name);
printf("身份证号:%d ",l.r[k].ID);
printf("学院名:%d ",l.r[k].xueyuan);
printf("\n");
}
void xyprint(table slt,int n) //系名索引查找
{
int i,j;
printf("\n请输入系名:");
scanf("%d",&i);
for(j=1;j<=n;j++)
{
if(slt.r[j].xueyuan==i)
{
printf("学号:%d ",slt.r[j].key);
printf("姓名:%s ",slt.r[j].name);
printf("身份证号:%d ",slt.r[j].ID);
printf("学院名:%d ",slt.r[j].xueyuan);
}
printf("\n");
}
}
int main()
{
int i,j,k;
int n,m;
table slt;
printf("请输入学生个数:\n");
scanf("%d",&n);
slt=creat(n);
while(1)
{
printf("/***************************************************/\n");
printf("排序并查找信息:选择1\n");
printf("退出:选择0\n");
printf("/***************************************************/\n");
scanf("%d",&j);
switch(j)
{
case 1:

quicksort(&slt,1,n);
print(slt,n);
printf("\n请输入要查找的学生学号:\n");
scanf("%d",&i);
seqsearch(slt,i);
xyprint(slt,n);
case 0:
break;
}
break;
}
return 0;
}
```
![s agb4y p8wstlv1z 82](https://user-images.githubusercontent.com/45326957/49647708-613c1f00-fa5e-11e8-913c-09db43d96a36.png)

贡献指南

这个仓库没有索引到贡献指南

调研方向

The issue contains a full C program for student record management with sorting and searching. The problem is not described; the user posted code and an image. To start, examine the code for bugs or improvements, run it to see its behavior, and check the image for context. The work likely involves fixing or refactoring the provided code, but the specific task is undefined.

由索引模型根据 Issue 内容生成。

评估

技术栈
c
领域
cli
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
30/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。