(答案提出)C言語教室 第26回 - いろいろなソート
最近しばらく、課題が難しすぎて、解答を見ながらウンウン唸ってました。
今回のはなんとか対応できそうです。
課題
ソースコード
英語表記の曜日を、文字列でソートして並べ替えます。
/**********************************************************************
lesson26 Sorts an array of strings with bubble sort
by Akio van der Meer
[変更履歴]
(無印) 記事初投稿時のコード
**********************************************************************/
#include <stdio.h>
#include <string.h>
int main() {
char *weekday[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
char *temp = "";
int size = 7;
for (int i = 0; i < size - 1; i++) {
for ( int j = i + 1; j < size; j++) {
if (strcmp(weekday[i], weekday[j]) > 0) {
temp = weekday[i];
weekday[i] = weekday[j];
weekday[j] = temp;
}
}
}
for (int k = 0; k < size; k++) {
printf("%s\n",weekday[k]);
}
return 0;
}
実行結果
この並びに違和感を禁じ得ませんが、確かにアルファベット順に並んでいます。
jm3nrhMac-mini-:c akio$ gcc lesson26.c
jm3nrhMac-mini-:c akio$ ./a.out
Friday
Monday
Saturday
Sunday
Thursday
Tuesday
Wednesday
jm3nrhMac-mini-:c akio$
如何でしょうか?機能しているみたいです。
ChatGPT様に聞いてみた
『次のコードの優れているところを述べよ。』
うっしっし、、!
後記
「いやぁ参った、またポインタだよ、、、しかも配列、、、」
、、、まだまだポインタ恐怖症の克服は時間がかかりそうです(苦笑
関数ポインタは、、、スルーさせていただきました。ごめんなさい。
ここまで読んでいただき、有難うございました。
いいなと思ったら応援しよう!
これまでの収益は全て、それを必要としておられる方々へ、支援機関を通して寄付させていただきました。この活動は今後も継続したいと思っています。引き続きよろしくお願いいたします。