• ベストアンサー

乱数とファイルの入出力の質問です。

課題で「100個の乱数を発生させファイルに保存し、そのファイルを読み込み、昇順に並べ替えするプログラムを作れ」という課題がありました。 乱数を発生させるのと、昇順に並び替える方法はわかるのですが、二つをうまく組み合わせる方法がわかりません。 ポインタを使ってファイルの入出力をするプログラムを教えてくださる方がいたら連絡ください。 出来れば模範のプログラムを掲示していただけるとうれしいです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#30727
noname#30727
回答No.2

>ポインタを使ってファイルの入出力をするプログラム ポインタの意味が良くわかりません。ヒントになるような部分を書きますので、参考にしてください。 #define FILENAME "sample.txt" #define ARRAYSIZE 100 int RandomNumber[ARRAYSIZE]; void WriteToFile() { FILE *fp; int i; fp = fopen(FILENAME, "w"); for (i = 0; i < ARRAYSIZE; i++) { fprintf(fp, "%d\n", RandomNumber[i]); } fclose(fp); } void ReadFromFile() { FILE *fp; int i; fp = fopen(FILENAME, "r"); for (i = 0; i < ARRAYSIZE; i++) { fscanf(fp, "%d", &RandomNumber[i]); } fclose(fp); }

その他の回答 (1)

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.1

「組み合わせる」必要というのは、あまりないんじゃないでしょうか。 char *getFileName(); void generateRandomNumber(char *fileName); void sortFile(char *fileName); int main() {  char *fileName;  fileName = getFileName();  generateRandomNumber(fileName);  sortFile(fileName);  return 0; } みたいな感じにすれば、各サブルーチンの内容は全く他とは関係なしに できると思いますけど。

leeca0331
質問者

お礼

参考になりました。 ありがとうございました。

関連するQ&A

  • ファイル入出力について

    postgresqlとphpを使っての課題がでているのですが途中でわからないことがあるので質問します。 ファイルの入出力の方法が分かりません。 sqlでは\copy into,\copy fromでできるのですがphpではどうすればよいか検討がつきません。インターネットでも調べたのですが少し難しく理解ができません。 あまり期限をとられていない課題ですのでしっかり理解する事ができない状態で質問するのは好ましくないと思いますが宜しくお願いします。

    • ベストアンサー
    • PHP
  • 乱数を確認する方法について

    プログラムをかいて正規乱数を発生させたのですが、それがきちんと正規乱数になっているか確かめる方法がわかりません。

  • C言語のファイルポインタについて質問です

    ファイルポインタはファイルが置かれている場所を保存し、ファイルの入出力のために使用する物ですか?

  • C言語のファイル入出力について教えて下さい

    C言語初めて1ヶ月の超初心者です。 本を読んでもネットで調べても、ファイル入出力の意味がいまいちよく分かりません。 プログラムはCPadで書いています。 書き終わったプログラムを.cのファイル名で保存し、それをコンパイル。 読み込みたいファイルを.csvで作る。書いたプログラムの実行ボタンを押し、 .exe .csv .c の3つのファイルを打ち込んだ後、また.cを打ち込む。 これで一応実行はできるのですが、csvファイルで作ったもの (例をだして言うと ------------------------------------------------------------------ 名前     番号      給与   残業代    所得税 ○○  0001     200000   20000     10000 ------------------------------------------------------------------ というものをcsvで作るとします)  は、プログラムでも、名前 番号 給与 残業代 所得税 と書いてある部分はまったく同じように作らないと csvファイルから読むことはできないのでしょうか? csvファイルとプログラムを実行した結果の役割が、理解出来なくて困っています。ずっとプログラムの文法(?)ばかり勉強してきて、いざファイル入出力をしたら、どういう意味があるのかどう役立つのか分かりません。 後、上のような表で20人分をまとめて出力したいのですが、ファイル入出力するにあたって、条件式はfprintfなどを書く前に書くのでしょうか? お勧めの分かりやすい本などの情報も、教えて頂けると嬉しいです。   長々申し訳ありませんが、宿題の納期が近いので困っています。 よろしくお願いします。

  • ファイル入出力をサーブレットで・・・

    JAVAのオーソドックスなファイル入出力のサンプルを改造して、サーブレットにしようと思ったのですがうまくいきませんでした。 まず手始めに、コンソールアプリケーションとして、”abc"と言う内容のabc.txtを吐き出すサンプルを試しました、これはうまくいきました。 その後で、それをそのままサーブレットに組み込み、リクエスト時にファイルの出力ができるか試してみたのですが、どうもどこにも出力されていない用です。 サーブレットへのアクセスが失敗しているのかとおもい、サーブレットのプログラムの最後にhtmlに出力させるコードを書いてみたところ出力されましたので、プログラムそのものにはアクセスしているようです。 やりたいことというのは、htmlのtextareaからpostでおくって、サーバーにtxtファイルとして保存する・・・ということです。

    • ベストアンサー
    • Java
  • 乱数の発生確率(c++)

    0,1の2値の乱数を発生させるとき、1の発生確率を例えば20%にするにはどのようにすればよいのでしょうか。 発生乱数を除算して余りを求めて・・・・の方法など試したのですが、うまいこといきませんでした。(プログラムが動かないのではなく結果が) 私の確率の認識が間違っているのかもしれませんが、この場合、1000個発生させた場合、300近く1が出れば良いということですよね。

  • ファイルの入出力に関して

    ファイル入出力の部分なんですが FILE *input,*input2,*input3; input=fopen("070921\10.txt","r"); input2=fopen("070921\20.txt","r"); input3=fopen("070921\30.txt","r"); 以下省略.  上記のようなプログラムに関して,フォルダの070921とテキストファイルの10,20,30の部分をコマンドライン上で入力させてひとまとめでデータを読み込みたいと考えています.  gets関数を用いて,プログラムの一部を以下のように作成してみたのですが入力に手間がかかります. char fin[80]; gets(fin); input=fopen(fin,"r"); 以下省略. 何か良い方法があれば教えてもらえないでしょうか.

  • 乱数について・・・

    (1)1,2,3,4の整数のどれかを乱数で発生させる方法 (2)0~1までの実数を発生させる方法 を教えていただけないでしょうか?(a.outするたびに値が変わってほしいです。) ※一応、下のプログラムにあるように実行するたびに違う乱数がanswerに入るようにはできたのですが、いまいち理解できていません。軽い説明や参考URLなども教えてもらえたら助かります。 よろしくお願いします。 #include<time.h> int main() { unsigned short time_a,time_b; unsigned long answer; time_a = time(NULL); time_b = time_a; srand(time_b); answer = rand(); printf("答えは = %d\n",answer); }

  • access2003の乱数で・・・

    はじめまして。access初心者です。 Rnd乱数を使ってテーブルからランダムにフォームに表示するおみくじのようなモノを作っています。テーブルには「CD」のフィールドを作り連番で整数を並べ、発生する乱数はこの範囲に指定し、テーブルのレコードを追加することでおみくじの回答を増やせる仕組にしています。 実際、動かすとランダムにおみくじの回答がフォームに表示されるのですが、一度accessを閉じて開いた場合の1回目の回答が毎回同じになってしまいます。(続けて2回目ですとランダムに出ます)原因や回避方法はあるのでしょうか?また、ファイルの保存先はファイルサーバーである事も何か影響あるのでしょうか? ご教授願えれば幸いです。

  • -から+までの乱数発生方法

    乱数の発生方法について質問させてください。 以前の質問を見ましたが、どれも+の値から+の値までの 発生方法だったと思ったのですが、 私がわからないのはタイトルにもあったように、 -から+までの乱数発生方法です。 わかる方いらっしゃったら、回答お願いいたします。

    • ベストアンサー
    • Java

専門家に質問してみよう