日記001

昨日やった事(昨日やった事は昨日の内にあげるべきですが...) 乱数の生成(復習も兼ねて), バブルソートの実装(降順昇順). 昇順は1,2,3...100のような小さい数からの並び替え,降順はその逆.  f:id:chazu767:20200318084312p:plain

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<math.h>

int main(void) {
    int i,j,tmp;
    //配列に格納する変数に関してはconst intの方が良い??
    const int num = 100;
    int st[num],ans[num];
    //毎回乱数を異なる値にする.
    srand((unsigned int)time(NULL));
    //乱数の生成100個
    printf("乱数の生成\n");
    for (i = 0; i < 100; i++) {
            st[i] = rand() % 100 + 1;
            ans[i] = st[i];
            printf("%d,",st[i]);        
    }
    printf("\n");
    
    //バブルソート昇順
    printf("ここからソート昇順\n");
    for (i = 0; i < num; i++) {
        for (j =i+1; j < num; j++) {
            if (ans[i] > ans[j]) {
                tmp = ans[i];
                ans[i] = ans[j];
                ans[j] = tmp;
            }
        }
    }

    //結果(昇順)
    for (i = 0; i < 100; i+=10) {
        for (j = 0; j < 10; j++) {
            printf("%d,", ans[i+j]);
        }
        printf("\n");
    }
    printf("\n");

    //バブルソート(降順)
    printf("ここからソート降順\n");
    for (i = 0; i < num; i++) {
        for (j = i + 1; j < num; j++) {
            if (ans[i] < ans[j]) {
                tmp = ans[i];
                ans[i] = ans[j];
                ans[j] = tmp;
            }
        }
    }

    //結果(降順)
    for (i = 0; i < 100; i += 10) {
        for (j = 0; j < 10; j++) {
            printf("%d,", ans[i + j]);
        }
        printf("\n");
    }
    printf("\n");

    return 0;
}

https://github.com/chazu767/Sample/blob/master/bubblesort.cpp

乱数は1次元配列の為printfで2次元的な配列として見やすくするやり方に苦労した.コードは for (i = 0; i < 100; i += 10) の部分でiを10ずつ増やしていけば出来ることが分かった. メモ書きで表示したい領域 1~10 11~20 21~30... のようにメモと,iとjをどのように紐づけていけばそうなるのか考えるのが楽しかった.


P.S昨日は風が強かった.大学の授業が春から始まるのか不安である(ウイルスの関係). 帰宅時に図書館へと寄っていったが,閉まっていた(営業時間内ではあったが感染拡大防止のためと思われる??) ひろゆきの本を買った,早く読みます.f:id:chazu767:20200318085942j:plain

   /へへ  \
  //⌒⌒\  \
  / /    ヽ  ヽ
 ||ヽ /⌒ |  |
  レY-・/ -・- ヽ  |
  | /     V) |
  |(_つ  ・  丿ノ
  |<三三>) / /
  ヽ ゙゙  /レソ
   \从ww/ |
    /) ̄  ∧
   /レヽ  / |\
   || | |⌒ ||