日記001
昨日やった事(昨日やった事は昨日の内にあげるべきですが...) 乱数の生成(復習も兼ねて), バブルソートの実装(降順昇順). 昇順は1,2,3...100のような小さい数からの並び替え,降順はその逆.
#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昨日は風が強かった.大学の授業が春から始まるのか不安である(ウイルスの関係). 帰宅時に図書館へと寄っていったが,閉まっていた(営業時間内ではあったが感染拡大防止のためと思われる??) ひろゆきの本を買った,早く読みます.
/へへ \ //⌒⌒\ \ / / ヽ ヽ ||ヽ /⌒ | | レY-・/ -・- ヽ | | / V) | |(_つ ・ 丿ノ |<三三>) / / ヽ ゙゙ /レソ \从ww/ | /) ̄ ∧ /レヽ / |\ || | |⌒ ||