倒数第二个没过,不知道为啥,求帮助
  • 板块P1104 生日
  • 楼主telankesi
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/11/13 13:02
  • 上次更新2023/10/27 03:07:30
查看原帖
倒数第二个没过,不知道为啥,求帮助
866969
telankesi楼主2022/11/13 13:02
#include <stdio.h>
typedef struct student {
	char name[100];
	int y;
	int m;
	int d;
}Stu;
Stu a[1000];
int compare(int i);
int main() {
	int n;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%s %d %d %d", &a[i].name, &a[i].y, &a[i].m, &a[i].d);
	}
	if (n > 1) {
		for (int j = 1; j <= n - 1; j++) {
			for (int i = 0; i < n-1 ; i++) {
				
				if (compare(i)) {
					Stu t = a[i];
					a[i] = a[i + 1];
					a[i + 1] = t;
				}
			}
		}
	}
	for (int i = 0; i < n; i++) {
		printf("%s\n", a[i].name);
	}
}
int compare(int i) {
	int flag = 0;
	if (a[i + 1].y < a[i].y) flag = 1;
	else if (a[i + 1].y == a[i].y) {
		if (a[i + 1].m < a[i].m) flag = 1;
		else if (a[i + 1].m == a[i].m) {
			if (a[i + 1].d <= a[i].d)flag = 1;
		}
	}
	return flag;
}
2022/11/13 13:02
加载中...