ページ 11

ビンゴゲームの下準備のようなもの?

Posted: 2011年7月18日(月) 20:07
by 居候
初めまして、C言語初心者です。
大学の課題でわからないところがあったので質問に来ました。

出た課題は
---------------------------------------
5×5の行列にダブりなく0~99の範囲内の整数乱数を入れ、それを出力し、
さらに、ユーサに0~99の数を一つ入力させ、入力した数が行列内にあるかどうかを出力し、
ある場合はその行と列の番号も出力するプログラムを作れ
---------------------------------------
というもので
25個乱数を出力することはできましたが(教授がくれたヒントを参照した)
それを0~99にする方法と
5×5の行列にする方法が皆目見当がついていません

参考になるサイトや、ちょっとした助言でもいいのでよろしくお願いします。

Re: ビンゴゲームの下準備のようなもの?

Posted: 2011年7月18日(月) 20:20
by non
居候 さんが書きました:25個乱数を出力することはできましたが(教授がくれたヒントを参照した)
そのプログラムを添付してください。

Re: ビンゴゲームの下準備のようなもの?

Posted: 2011年7月18日(月) 20:26
by 居候
#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;
}


これでいいのでしょうか?

Re: ビンゴゲームの下準備のようなもの?

Posted: 2011年7月18日(月) 20:56
by box
居候 さんが書きました: これでいいのでしょうか?
これでいいのでしょうか、とは、添付のやり方のことですか?
それとも、コードの内容のことですか?

前者なら、codeタグを使ってください。
後者なら、ご自分のところでコンパイル~実行してみてください。

Re: ビンゴゲームの下準備のようなもの?

Posted: 2011年7月18日(月) 21:14
by 居候
すみません前者です
言葉足らずでした

コード:

#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;
}

Re: ビンゴゲームの下準備のようなもの?

Posted: 2011年7月18日(月) 21:19
by box
それでは、コンパイル~実行した結果はどうなりましたか?

Re: ビンゴゲームの下準備のようなもの?

Posted: 2011年7月18日(月) 21:47
by 居候
コンパイルした結果

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: ビンゴゲームの下準備のようなもの?

Posted: 2011年7月18日(月) 21:49
by non
居候 さんが書きました: それを0~99にする方法と
5×5の行列にする方法が皆目見当がついていません
0~99にするにはですが・・・
今、あなたが出力した乱数値の範囲はいくらなのでしょうか?
私のコンパイラでは、エラーになるので確認できませんので。
仮にそれが、0~RAND_MAXの範囲の整数値なら、その乱数値を(RAND_MAX+1)で割り、100倍して整数化します。
そこまで、できたら、添付してください。

ついでに
5×5の行列にする方法ですが、ここで、行列とは配列と考えてよいでしょうか?
また、コンパイラ等の環境を示してください。

Re: ビンゴゲームの下準備のようなもの?

Posted: 2011年7月18日(月) 21:57
by 居候
non さんが書きました:
居候 さんが書きました: それを0~99にする方法と
5×5の行列にする方法が皆目見当がついていません
0~99にするにはですが・・・
今、あなたが出力した乱数値の範囲はいくらなのでしょうか?
私のコンパイラでは、エラーになるので確認できませんので。
仮にそれが、0~RAND_MAXの範囲の整数値なら、その乱数値を(RAND_MAX+1)で割り、100倍して整数化します。
そこまで、できたら、添付してください。

ついでに
5×5の行列にする方法ですが、ここで、行列とは配列と考えてよいでしょうか?
また、コンパイラ等の環境を示してください。
範囲の指定はしてない・・・はずです
教授のヒントに10個の乱数を発生させるプログラムが載ってたので
defineのNの値を25に変えただけなんです。

配列だと思います。

コンパイラの環境ってのがわからないです
リナックスのコンソールでやってます、ということしかわからないです
すみません

Re: ビンゴゲームの下準備のようなもの?

Posted: 2011年7月18日(月) 22:04
by non
>範囲の指定はしてない・・・はずです

乱数ってのは指定しなくても、範囲があります。
わからないなら別の方法にしましょう。

乱数を 100で割った余りを求めれば 0~99になります。
試してみてください。

Re: ビンゴゲームの下準備のようなもの?

Posted: 2011年7月18日(月) 22:16
by 居候
non さんが書きました:>範囲の指定はしてない・・・はずです

乱数ってのは指定しなくても、範囲があります。
わからないなら別の方法にしましょう。

乱数を 100で割った余りを求めれば 0~99になります。
試してみてください。
すみません書いてありました
引数なしのrandom()が呼び出される毎に0~(2^31)-1(=2147483647)の範囲で返すそうです。

Re: ビンゴゲームの下準備のようなもの?

Posted: 2011年7月18日(月) 22:21
by non
結構、大きい数なので、余りを求める方法の方がいいでしょう。
できたら、プログラムを載せてください。
それに、配列の宣言もしておいてください。

Re: ビンゴゲームの下準備のようなもの?

Posted: 2011年7月19日(火) 02:05
by 居候
いろいろこねくり回してたらなんとかできました。
返信遅れて申し訳ありません
ありがとうございました