今日(2020/06/20)からアルゴリズムを勉強していこうと思う。選ばれたのはC言語です。理由は単純で今勉強中だから。メモ用として使っていくので詳しい解説はしない(というか知識がないからできない)。よく参考書にあるような数字の計算から始めるわけではないのでそこは理解していただきたい。では早速やっていこう。
環境構築に関しては以下の記事を参考にして構築した。(Windows)
※Macはわかりませんので各自で調べてください。
https://webkaru.net/clang/mingw-gcc-environments/
使用している書籍:C言語によるはじめてのアルゴリズム入門
著者:河西朝雄
順位づけ
rank.c
#include <stdio.h>
#define NUM 11
int main(void){
static int array[] = {21,34,65,78,90,39,45,33,55,43,55};
int rank[NUM];
int i,j;
for(i = 0; i<NUM;i++){
// 初期値を1に設定
rank[i] = 1;
for(j = 0; j < NUM; j++){
// 自分より大きい要素が存在した場合に順位を一つあげる
if(array[i]<array[j])rank[i]++;
}
}
for(i = 0; i < NUM; i++)printf("score:%2d rank%2d\n",array[i],rank[i]);
}
結果
score:21 rank11
score:34 rank 9
score:65 rank 3
score:78 rank 2
score:90 rank 1
score:39 rank 8
score:45 rank 6
score:33 rank10
score:55 rank 4
score:43 rank 7
score:55 rank 4
まとめ
コードが1行の場合は{}を省略できることをしれたので今後簡単な部分は省略して読みやすいコードを書けるように努力したい。