Skip to content

殷吉奎 #98

@zhaogejk

Description

@zhaogejk
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#define m 20
#define max 100
typedef struct studentnode{
	char cardnum[m];
	char name[m];
	char classnum[m];
	char college[m];
}node;
typedef struct{
	node r[max+1];
	int length;
}table;
void sort(table *tab,int left,int right)
{
	int i,j;
	if(left<right)
	{
		i=left;
		j=right;
		tab->r[0]=tab->r[i];
		do
		{
			while(strcmp(tab->r[j].cardnum,tab->r[0].cardnum)==1&&i<j)j--;
			if(i<j)
			{
				tab->r[i]=tab->r[j];
				i++;
			}
			while(strcmp(tab->r[i].cardnum,tab->r[0].cardnum)==-1&&i<j)i++;
			if(i<j)
			{tab->r[j]=tab->r[i];j--;}
		}while(i!=j);
		tab->r[i]=tab->r[0];
		sort(tab,left,i-1);
		sort(tab,i+1,right);
	}
}
void creat(table *tab)
{
	int i,j,k;
	printf("请输入借书数:\n");
	scanf("%d",&tab->length);
	tab->length++;
	getchar();
	for(i=1;i<tab->length;i++)
	{
		printf("请输入卡号:\n");
		gets(tab->r[i].cardnum);
		printf("请输入名字:\n");
		gets(tab->r[i].name);
		printf("请输入班号:\n");
		gets(tab->r[i].classnum);
		printf("请输入系别:\n");
		gets(tab->r[i].college);
		printf("\n");
	}
	printf("创建完成\n");
}
void find(table *tab)
{
	int i,j;
	char object[m];
	printf("请输入你要查找的系别:\n");
	gets(object);
	for(i=1;i<tab->length;i++)
	{
		if(strcmp(object,tab->r[i].college)==0)
		{
			puts(tab->r[i].cardnum);
			puts(tab->r[i].name);
			puts(tab->r[i].classnum);
			puts(tab->r[i].college);
			printf("\n");
		}
	}
}
void display(table *tab)
{
	int i;
	for(i=1;i<tab->length;i++)
	{
		puts(tab->r[i].cardnum);
		puts(tab->r[i].name);
		puts(tab->r[i].classnum);
		puts(tab->r[i].college);
		printf("\n");
	}
}
int main()
{
	int i;
	table *tab;
	tab=(table *)malloc(sizeof(table));
	creat(tab);
	sort(tab,1,tab->length-1);
	display(tab);
	printf("请输入任意数字进行查询:\n");
	while(scanf("%d",&i)!=EOF)
	{
		getchar();
		find(tab);
	}
	return 0;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions