文章
19
粉丝
0
获赞
110
访问
2.1k
坑:毫秒和运行时间不能用字符串比较,要转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 ...
登录后发布评论
暂无评论,来抢沙发