Skip to content

李祎凡 #90

@lsysf

Description

@lsysf
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#define m 100
typedef struct link_node{
	char number[m];
	char  name[m];
	char  xi[m];
	char classnumber[m];
}node; 
typedef struct link_table{
	node r[m];
}table;
table *create(int n)
{
	table *tab=(table *)malloc(sizeof(table));
	char number[20],xi[20],classnumber[20];
	char name[10];
	int i=1;
	printf("please input name,number,xi and classnumber:\n");
	while(i<=n)
	{
		scanf("%s%s%s%s",name,number,xi,classnumber);
		strcpy(tab->r[i].name,name);
		strcpy(tab->r[i].number,number);
		strcpy(tab->r[i].xi,xi);
		strcpy(tab->r[i].classnumber,classnumber);
		i++;
	}
	return tab;
}
table *quicksort(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].number,tab->r[0].number)==1&&i<j)j--;
			if(i<j)
			{
				tab->r[i]=tab->r[j];
				i++;
			}
			while(strcmp(tab->r[i].number,tab->r[0].number)==-1&&i<j)i++;
			if(i<j)
			{
				tab->r[j]=tab->r[i];
				j--;
			}
		 }while(i!=j);
	    tab->r[i]=tab->r[0];
		quicksort(tab,left,i-1);
		quicksort(tab,i+1,right);
	}
	return tab;
}
void search(table *tab,char y[],int n)
{
	int i=n;
    printf("姓名    	卡号	      系名 	    班号	\n"); 
	while(i>0)
	{
		if(strcmp(tab->r[i].xi,y)==0)
		{
			printf("%5s%15s%15s%15s\n",tab->r[i].name,tab->r[i].number,tab->r[i].xi,tab->r[i].classnumber);
			i--;
		}
		else i--;
	}
}
void display(table *tab,int n)
{
	int i=1;
	printf("姓名    	卡号	      系名 	    班号	\n"); 
	while(i<=n)
	{
		printf("%5s%15s%15s%15s\n",tab->r[i].name,tab->r[i].number,tab->r[i].xi,tab->r[i].classnumber);
		i++;
	}
}
int main()
{
	int n,left,right;
	char y[20];
	printf("please input n:\n");
	scanf("%d",&n);
	left=1;right=n;
	table *tab,*tab1;
	tab=create(n);
	tab1=quicksort(tab,left,right);
	printf("按卡号排序结果是:\n");
	display(tab1,n);
	printf("please input xi:\n");
	scanf("%s",y);
	search(tab,y,n);
	return 0;
 } 

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions