[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]); } }
|
沒有留言:
張貼留言