Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

毎日C言語 2日目 順位づけ

今日(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行の場合は{}を省略できることをしれたので今後簡単な部分は省略して読みやすいコードを書けるように努力したい。

suraimu
現在(2020/02/06)大学2年生のものです。なかなか初心者を抜け出せないのでそろそろ抜け出したいです!笑
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away