[C/C++ 演算法]- 得分排行

[C/C++ 演算法]- 得分排行

[C/C++ 演算法]- 得分排行


剛才找資料時發現一個C/C++的教學網站,趕快發揮(C/P)的長才將它備份來,有需要的同好,歡迎來(C/P)一下^^。

拷貝來源:
http://openhome.cc/Gossip/AlgorithmGossip/
http://openhome.cc/Gossip/AlgorithmGossip/ScoreRank.htm

#include <stdio.h>
#include <stdlib.h>
#define LEN 10
#define MAX 100
#define MIN 0

void count(int*, int*, int);
void aggregate(int*);
void print(int*, int*, int);
int main(void) {
int scores[LEN] = {100, 99, 99, 97, 88, 83, 99, 74, 78, 89};
int juni[MAX + 2] = {0};
count(scores, juni, LEN);
aggregate(juni);
print(scores, juni, LEN);
return 0;
}
void count(int* scores, int* juni, int length) {
int i;
for(i = 0; i < length; i++) {
juni[scores[i]]++;
}
juni[MAX + 1] = 1;
}
void aggregate(int* juni) {
int i;
for(i = MAX; i >= MIN; i--) {
juni[i] = juni[i] + juni[i + 1];
}
}
void print(int* scores, int* juni, int length) {
printf("得分\t排行\n");
int i;
for(i = 0; i < LEN; i++) {
printf("%d\t%d\n", scores[i], juni[scores[i]+1]);
}
}

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *