バケット
プログラミングの授業のTA。
大分脱落者も増えてきているようだけど、
先生曰く「それでも今年は自分で考えてやっている率が高い」
だそうで、言われてみればそうかもしれない。
今日の演習は
ファイルからデータ(年齢の羅列)を読み込んで
それらを昇順に並び替えて別のファイルに出力しなさい。
と言うようなもの。
実際は構造体使ったりなんだけど、要約するとそんな感じ。
で、並び替えってーと、ソート。
どうやりますか?
殆どの学生は(僕も)下のようなものを書いたり、
それを目指していました。
ところが、質問してきた学生、
それと言ってプログラムは得意では無い感じの彼、
画面を覗いてみると並び替え部分が…
うお、アツイ。
…関係ないけど、ブログにソース載せるのはどうしたらいいんだ…。
<pre>使ったらえれぇ行間空くし…。
大分脱落者も増えてきているようだけど、
先生曰く「それでも今年は自分で考えてやっている率が高い」
だそうで、言われてみればそうかもしれない。
今日の演習は
ファイルからデータ(年齢の羅列)を読み込んで
それらを昇順に並び替えて別のファイルに出力しなさい。
と言うようなもの。
実際は構造体使ったりなんだけど、要約するとそんな感じ。
で、並び替えってーと、ソート。
どうやりますか?
殆どの学生は(僕も)下のようなものを書いたり、
それを目指していました。
#include <stdio.h>
#define MAX_DATA 5
int main(int argc, char* argv[])
{
FILE* fp;
int i, j, temp;
int ages[MAX_DATA];
fp = fopen("src.txt", "r");
for (i=0; i<MAX_DATA; i++) {
fscanf(fp, "%d", &ages[i]);
}
fclose(fp);
// ここから並び替え ----------------
for (i=0; i<MAX_DATA-1; i++) {
for (j=0; j<MAX_DATA-1; j++) {
if (ages[j+1] < ages[j]) {
temp = ages[j];
ages[j] = ages[j+1];
ages[j+1] = temp;
}
}
}
fp = fopen("dest.txt", "w");
for (i=0; i<MAX_DATA; i++) {
fprintf(fp, "%d\n", ages[i]);
}
fclose(fp);
// ここまで並び替え ----------------
return 0;
}
ところが、質問してきた学生、
それと言ってプログラムは得意では無い感じの彼、
画面を覗いてみると並び替え部分が…
fp = fopen("dest.txt", "w");
for (i=0; i<1000; i++) {
for (j=0; j<MAX_DATA; j++) {
if (ages[j] == i) {
fprintf(fp, "%d\n", ages[j]);
}
}
}
fclose(fp);
うお、アツイ。
…関係ないけど、ブログにソース載せるのはどうしたらいいんだ…。
<pre>使ったらえれぇ行間空くし…。
Class | - | trackbacks (0)