文章

19

粉丝

0

获赞

110

访问

2.1k

头像
日志排序 C语言题解:qsort排序
P1227 北京大学机考题
发布于2026年3月14日 11:30
阅读数 201

:毫秒和运行时间不能用字符串比较,要转int和double比较

比如 '40' > '350' ,但实际40<350,因为40前没有补0,因此要转double比较,否则只有75%。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

typedef struct Log{
	char all[100];
	char name[15];
	char date[15];
	int s,f,m,ms;
	double sum;
}Log;

int compare(const void* a, const void* b){
	const Log* aa=(const Log*)a;
	const Log* bb=(const Log*)b;
	if(aa->sum != bb->sum){
		return aa->sum - bb->sum > 0 ? 1 : 0;
	}else if(strcmp(aa->date, bb->date)!=0){
		return strcmp(aa->date, bb->date);
	}else if(aa->s!=bb->s){
		return aa->s - bb->s;
	}else if(aa->f!=bb->f){
		return aa->f - bb->f;
	}else if(aa->m!=bb->m){
		return aa->m - bb->m;
	}else{
		return aa->ms - bb->ms;
	}
		
}

int main(){
	Log arr[10000];
	int num=0;
	
	while(gets(arr[num].all)!=NULL){
		if(arr[num].all[0]=='\0')	break;
		sscanf(arr[num].all, "%s %s %d:%d:%d,%d ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发