最后俩个测试点没过,求好心人指点一下,感谢
  • 板块P1104 生日
  • 楼主telankesi
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/11/13 10:45
  • 上次更新2023/10/27 03:08:42
查看原帖
最后俩个测试点没过,求好心人指点一下,感谢
866969
telankesi楼主2022/11/13 10:45
#include <stdio.h>
typedef struct student{
char name[100];
int y;
int m;
int d;
}Stu;
Stu a[100];
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);
	}
	for (int j = 0; j < n - 1; j++) {
		for (int i =n-1; i >0;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 ].y < a[i-1].y) flag = 1;
	else if (a[i].y == a[i-1].y) {
		if (a[i].m < a[i-1].m) flag = 1;
		else if (a[i ].m ==  a[i-1].m) {
			if (a[i].d < a[i-1].d)flag = 1;
		}
	}
	return flag;
}
2022/11/13 10:45
加载中...