Skip to content

1707004731 石文昭 #92

@eternal12345

Description

@eternal12345
#include<stdio.h>
using namespace std;
const int maxn = 10000 + 10;
struct Node
{
	int department;//院号
	int number;//借书证卡号
	char name[maxn];//姓名
	char student_id[maxn];//学号
};
Node a[maxn];
void quicksort(Node a[], int left, int right)//按照系名进行排名
{
	int i, j;
	if (left >= right)
		return;

	i = left, j = right;
	a[0] = a[i];
	while (i != j)
	{
		while (a[j].number > a[0].number && i < j)
			--j;
		if (i < j)
		{
			a[i] = a[j];
			i++;
		}
		while (a[i].number < a[0].number && i < j)
			++i;
		if (i < j)
		{
			a[j] = a[i];
			j--;
		}
	}
	a[i] = a[0];
	quicksort(a, left, i - 1);
	quicksort(a, i + 1, right);

}

void bin_search(Node a[], int n, int x)
{
	int left = 1, right = n;
	int ans = 0;
	while (left <= right)
	{
		int mid = (left + right) / 2;
		if (a[mid].department == x)
		{
			ans = mid;
			break;
		}
		else if (a[mid].department < x)
		{
			left = mid + 1;
		}
		else
		{
			right = mid - 1;
		}
	}
	if (!ans)
	{
		printf("没找到\n");
	}
	else
	{
		int start = ans, ends = ans;
		while (a[start].department == x)
			start--;
		while (a[ends].department == x)
			ends++;
		printf("%d院的信息为:\n", x);
		for (int i = start + 1; i < ends; i++)
		{
			printf("%d %d %s %s\n", a[i].department, a[i].number, a[i].name, a[i].student_id);
		}
	}
}
int main()
{
	int n;
	int i;
	printf("请输入信息系统学生的个数:\n");
	scanf("%d", &n);
	printf("请输入学生学院号、卡号、姓名、学号:\n");
	for (i = 1; i <= n; i++)
	{
		scanf("%d%d%s%s", &(a[i].department), &a[i].number, &a[i].name, &a[i].student_id);
	}
	quicksort(a, 1, n);
	printf("按照卡号顺序输出学生信息:\n");
	for (i = 1; i <= n; i++)
	{
		printf("%d %d %s %s\n", a[i].department, a[i].number, a[i].name, a[i].student_id);
	}
	int x;
	printf("请输入要查找的学院号:\n");
	scanf("%d", &x);
	bin_search(a, n, x);
	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