不是 题目是不是搞反了 我本来80分,输入靠后的输出靠前,结果反一下就AC了
  • 板块P1104 生日
  • 楼主crazy_shit
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/9 15:10
  • 上次更新2024/3/9 16:46:31
查看原帖
不是 题目是不是搞反了 我本来80分,输入靠后的输出靠前,结果反一下就AC了
1300783
crazy_shit楼主2024/3/9 15:10
#include<stdio.h>    
#include<stdlib.h>    
#include<string.h>  
  
struct Student {    
    char s[20];  
    int y;    
    int m;    
    int d;    
};    
  

int compare(const void *a, const void *b) {    
    const struct Student *studentA = *(const struct Student **)a;  
    const struct Student *studentB = *(const struct Student **)b;  
    if (studentA->y != studentB->y){
		return studentA->y - studentB->y;
	    }
	else if(studentA->m != studentB->m){
		return studentA->m - studentB->m;
	}
	else if(studentA->d==studentB->d){
		return 1;
	}
	else{
		return studentA->d - studentB->d;    
	}
}
  
int main() {    
    int i, n;    
    scanf("%d", &n);    
    struct Student **info = (struct Student **)malloc(sizeof(struct Student *) * n);  
      
    for (i = 0; i < n; i++) {    
        info[i] = (struct Student *)malloc(sizeof(struct Student));  
        scanf("%19s %d %d %d", info[i]->s, &info[i]->y, &info[i]->m, &info[i]->d);  
    }    
      
    qsort(info, n, sizeof(struct Student *), compare);   
    for (i = 0; i < n; i++) {    
        printf("%s\n", info[i]->s);  
    }
    for (i = 0; i < n; i++) {    
        free(info[i]);    
    }    
    free(info);    
      
    return 0;    
}
2024/3/9 15:10
加载中...