Untitled
我把我不會的地方標註起來了,拜託有空教教我~unknown
plain_text
3 years ago
2.0 kB
5
Indexable
#include <stdio.h> #include <stdlib.h> //這個是甚麼時候要用呢? #include <string.h> //這段我不會~ typedef struct _cat{ char name[50]; int occa; int age; }cat; int cmp(const void *a,const void *b){ //這句括號中的我看不懂 cat A=*(cat*)a; //這句我不會 cat B=*(cat*)b; if(A.occa==B.occa){ if(A.age==B.age){ return strcmp(A.name,B.name); //這個是代表什麼呢? } else if(A.age>B.age){ return A.occa==5?1:-1; } else{ return A.occa==5?-1:1; } } else if(A.occa>B.occa){ return 1; } else{ return -1; } //1和-1的意思? } int main(void){ int N,M; cat cats[10010]; //這句我也不懂他的意思 while((scanf("%d %d",&N,&M))!=EOF){ for(int i=0;i<N;i++){ char temp[50]; scanf("%s %s %d",cats[i].name,temp,&(cats[i].age)); //為甚麼是用cats? switch(temp[0]){ case 'e': cats[i].occa=1; break; case 'n': cats[i].occa=2; break; case 'k': cats[i].occa=3; break; case 'w': cats[i].occa=4; break; case 'a': cats[i].occa=5; break; case 'm': cats[i].occa=6; break; case 'd': cats[i].occa=7; break; case 'l': cats[i].occa=8; break; } } qsort(cats,N,sizeof(cat),cmp); //這句我不會QQ for(int i=0;i<M && i<N;i++){ printf("%s\n",cats[i].name); } } return 0; }
Editor is loading...