ビンゴゲームの下準備のようなもの?
-
居候
ビンゴゲームの下準備のようなもの?
初めまして、C言語初心者です。
大学の課題でわからないところがあったので質問に来ました。
出た課題は
---------------------------------------
5×5の行列にダブりなく0~99の範囲内の整数乱数を入れ、それを出力し、
さらに、ユーサに0~99の数を一つ入力させ、入力した数が行列内にあるかどうかを出力し、
ある場合はその行と列の番号も出力するプログラムを作れ
---------------------------------------
というもので
25個乱数を出力することはできましたが(教授がくれたヒントを参照した)
それを0~99にする方法と
5×5の行列にする方法が皆目見当がついていません
参考になるサイトや、ちょっとした助言でもいいのでよろしくお願いします。
大学の課題でわからないところがあったので質問に来ました。
出た課題は
---------------------------------------
5×5の行列にダブりなく0~99の範囲内の整数乱数を入れ、それを出力し、
さらに、ユーサに0~99の数を一つ入力させ、入力した数が行列内にあるかどうかを出力し、
ある場合はその行と列の番号も出力するプログラムを作れ
---------------------------------------
というもので
25個乱数を出力することはできましたが(教授がくれたヒントを参照した)
それを0~99にする方法と
5×5の行列にする方法が皆目見当がついていません
参考になるサイトや、ちょっとした助言でもいいのでよろしくお願いします。
-
居候
Re: ビンゴゲームの下準備のようなもの?
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 25
int main(void)
{
int i, a;
/* srandom(time(NULL)); */
for(i = 1; i <=N; i++){
a = random();
printf("a = %d\n", a);
}
return 0;
}
これでいいのでしょうか?
#include<stdlib.h>
#include<time.h>
#define N 25
int main(void)
{
int i, a;
/* srandom(time(NULL)); */
for(i = 1; i <=N; i++){
a = random();
printf("a = %d\n", a);
}
return 0;
}
これでいいのでしょうか?
Re: ビンゴゲームの下準備のようなもの?
これでいいのでしょうか、とは、添付のやり方のことですか?居候 さんが書きました: これでいいのでしょうか?
それとも、コードの内容のことですか?
前者なら、codeタグを使ってください。
後者なら、ご自分のところでコンパイル~実行してみてください。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
-
居候
Re: ビンゴゲームの下準備のようなもの?
コンパイルした結果
a = 1804289383
a = 846930886
a = 1681692777
a = 1714636915
a = 1957747793
a = 424238335
a = 719885386
a = 1649760492
a = 596516649
a = 1189641421
a = 1025202362
a = 1350490027
a = 783368690
a = 1102520059
a = 2044897763
a = 1967513926
a = 1365180540
a = 1540383426
a = 304089172
a = 1303455736
a = 35005211
a = 521595368
a = 294702567
a = 1726956429
a = 336465782
と25個の数字が出てきました
a = 1804289383
a = 846930886
a = 1681692777
a = 1714636915
a = 1957747793
a = 424238335
a = 719885386
a = 1649760492
a = 596516649
a = 1189641421
a = 1025202362
a = 1350490027
a = 783368690
a = 1102520059
a = 2044897763
a = 1967513926
a = 1365180540
a = 1540383426
a = 304089172
a = 1303455736
a = 35005211
a = 521595368
a = 294702567
a = 1726956429
a = 336465782
と25個の数字が出てきました
Re: ビンゴゲームの下準備のようなもの?
0~99にするにはですが・・・居候 さんが書きました: それを0~99にする方法と
5×5の行列にする方法が皆目見当がついていません
今、あなたが出力した乱数値の範囲はいくらなのでしょうか?
私のコンパイラでは、エラーになるので確認できませんので。
仮にそれが、0~RAND_MAXの範囲の整数値なら、その乱数値を(RAND_MAX+1)で割り、100倍して整数化します。
そこまで、できたら、添付してください。
ついでに
5×5の行列にする方法ですが、ここで、行列とは配列と考えてよいでしょうか?
また、コンパイラ等の環境を示してください。
non
-
居候
Re: ビンゴゲームの下準備のようなもの?
範囲の指定はしてない・・・はずですnon さんが書きました:0~99にするにはですが・・・居候 さんが書きました: それを0~99にする方法と
5×5の行列にする方法が皆目見当がついていません
今、あなたが出力した乱数値の範囲はいくらなのでしょうか?
私のコンパイラでは、エラーになるので確認できませんので。
仮にそれが、0~RAND_MAXの範囲の整数値なら、その乱数値を(RAND_MAX+1)で割り、100倍して整数化します。
そこまで、できたら、添付してください。
ついでに
5×5の行列にする方法ですが、ここで、行列とは配列と考えてよいでしょうか?
また、コンパイラ等の環境を示してください。
教授のヒントに10個の乱数を発生させるプログラムが載ってたので
defineのNの値を25に変えただけなんです。
配列だと思います。
コンパイラの環境ってのがわからないです
リナックスのコンソールでやってます、ということしかわからないです
すみません
Re: ビンゴゲームの下準備のようなもの?
>範囲の指定はしてない・・・はずです
乱数ってのは指定しなくても、範囲があります。
わからないなら別の方法にしましょう。
乱数を 100で割った余りを求めれば 0~99になります。
試してみてください。
乱数ってのは指定しなくても、範囲があります。
わからないなら別の方法にしましょう。
乱数を 100で割った余りを求めれば 0~99になります。
試してみてください。
non
-
居候
Re: ビンゴゲームの下準備のようなもの?
すみません書いてありましたnon さんが書きました:>範囲の指定はしてない・・・はずです
乱数ってのは指定しなくても、範囲があります。
わからないなら別の方法にしましょう。
乱数を 100で割った余りを求めれば 0~99になります。
試してみてください。
引数なしのrandom()が呼び出される毎に0~(2^31)-1(=2147483647)の範囲で返すそうです。