17070047 / 17070047/CodeStructureCourse
张美美
- Lenguaje dominante
- C++
- Estrellas
- 16
- Forks
- 2
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
```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;
}
```

Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- c
- Área
- cli
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 30/100