亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求解釋 這段代碼中成績的順序輸出是怎么輸出的??? 第一個函數cmp是什么意思???

求解釋 這段代碼中成績的順序輸出是怎么輸出的??? 第一個函數cmp是什么意思???

C
安之4183388 2017-06-09 21:30:29
#include <stdio.h>#include <stdlib.h>#define N 10int cmp(const void *a,const void *b){??? return *(int*)b - *(int*)a;}int Sum(int score[]){??? int s = 0,i;??? for(i = 0 ; i < N ; i++)??????? s += score[i];??? return s;}int Max(int score[]){??? return score[0];}int Min(int score[]){??? return score[N-1];}double Avg(int s){??? return (s + 0.0) / N;}int main(){??? int score[N]={67,98,75,63,82,79,81,91,66,84};??? int i,sum;??? sum = Sum(score);??? qsort(score,N,sizeof(int),cmp);//sort it??? printf("Total score : %d\n",sum);??? printf("Max score : %d\n",Max(score));??? printf("Min Score : %d\n",Min(score));??? printf("Average score : %f\n",Avg(sum));??? printf("\n成績排序:\n");??? for(i = 0 ; i < N ; i++)??? {??????? printf("Rank %d's score : %d\n",i+1,score[i]);??? }??? return 0;}
查看完整描述

1 回答

已采納
?
MinRam

TA貢獻87條經驗 獲得超24個贊

#include?<stdio.h>
#include?<stdlib.h>
#define?N?10
int?cmp(const?void?*a,const?void?*b){??//?qsort庫函數的自定義比較函數參數。
????return?*(int*)b?-?*(int*)a;????????//?即進行快速排序時候,比較兩個元素的先后順序。
}??????????????????????????????????????//?詳情可以看下qsort庫函數的參數介紹(百度)
int?Sum(int?score[]){
????int?s?=?0,i;
????for(i?=?0?;?i?<?N?;?i++)
????????s?+=?score[i];
????return?s;
}
int?Max(int?score[]){
????return?score[0];
}
int?Min(int?score[]){
????return?score[N-1];
}
double?Avg(int?s){
????return?(s?+?0.0)?/?N;
}
int?main()
{
????int?score[N]={67,98,75,63,82,79,81,91,66,84};
????int?i,sum;
????sum?=?Sum(score);
????qsort(score,N,sizeof(int),cmp);????????????????????//?借用庫函數快速排序,進行數組排序。
????printf("Total?score?:?%d\n",sum);
????printf("Max?score?:?%d\n",Max(score));
????printf("Min?Score?:?%d\n",Min(score));
????printf("Average?score?:?%f\n",Avg(sum));
????printf("\n成績排序:\n");
????for(i?=?0?;?i?<?N?;?i++)
????{
????????printf("Rank?%d's?score?:?%d\n",i+1,score[i]);
????}
????return?0;
}


查看完整回答
2 反對 回復 2017-06-10
  • 安之4183388
    安之4183388
    return *(int*)b - *(int*)a 能不能再把這個解釋清楚點 我還是有點看不懂。。。 謝謝
  • MinRam
    MinRam
    整個式子 * (int*) b - * (int*) a b先強制轉換成(int*)指針類型,在取值; a同樣
  • 1 回答
  • 0 關注
  • 1048 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號