|
Cの初心者のくせに、なぜかアセンブラに興味がでたので関係する書物をみていたら、入力の合図があるまで、数字をカウントすることで、乱数もどきを出力するというプログラムがあったので、C言語で表現してみました。
見苦しい部分もあるかもしれませんが、ご意見ください。
#include <stdio.h>
#include <conio.h>/*ANSI Cではなく、borland cを用いたプログラムなので注意*/
main()
{
int i,j; /*rand()関数を用いらない乱数制作法*/
i = 0;
while(1)
{
j = kbhit(); /*入力は待ってはくれない*/
if ( !(i % 7)) i= 0; /*7になったら0になる*/
else if (j) break; /*0以外の値の時に入力があれば値を返す*/
i++ ;
}
printf("でてきたのは%d",i);
return i;
}
私の考える利点としては、いちいち時計を使う必要がないことぐらいです。
処理としてはやはり、rand()関数を用いた方がいいのでしょうか・・・。
もし、ほかにもrand()関数を用いらない疑似乱数を出力するプログラムがありましたら、教えてください。
|