←検索窓の楽しみ方
  ショッピングモール  掲示板ランキング


【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板1こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.4166

席替えをプログラムを使ってしたいのですが。。。
投稿者---びぎな(2005/07/02 11:42:10)


乱数を使って、出席番号1番の人は_(ここに乱数が入る)番の席。
というようなことを30人分やりたいのですが、どうしても同じ番号
の席がでてきてしまうんです。
乱数で同じ数字が出てこないようにするにはどういうプログラムを
つくればいいのでしょうか?


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:席替えをプログラムを使ってしたいのですが。。。 4167 Blue 2005/07/02 12:23:54
<子記事> Re:席替えをプログラムを使ってしたいのですが。。。 4179 あかま 2005/07/02 18:48:34


No.4167

Re:席替えをプログラムを使ってしたいのですが。。。
投稿者---Blue(2005/07/02 12:23:54)


文で説明するのがうまく出来なかったので、下に
ソースを載せます。

#include <stdio.h> #include <stdlib.h> #include <time.h> #define SEKISU 30 void swap( int* p1, int* p2 ) { int temp = *p1; *p1 = *p2; *p2 = temp; } int main( void ) { int seki[ SEKISU ]; int n, max, ret; for ( n = 0; n < SEKISU; n++ ) { seki[ n ] = n + 1; } srand( ( unsigned )time( NULL ) ); for ( n = 0; n < SEKISU; n++ ) { max = SEKISU - n; ret = rand() % max; printf( "出席番号 %2d 番の人は %2d \n", n + 1, seki[ ret ] ); swap( &seki[ ret ], &seki[ max - 1 ] ); } return EXIT_SUCCESS; }



この投稿にコメントする

削除パスワード

No.4182

Re:席替えをプログラムを使ってしたいのですが。。。
投稿者---びぎな(2005/07/02 21:57:47)


><pre>文で説明するのがうまく出来なかったので、下に
ソースを載せます。
<hr>
<font color="blue">#include</font> <stdio.h>
<font color="blue">#include</font> <stdlib.h>
<font color="blue">#include</font> <time.h>

<font color="blue">#define</font> SEKISU <font color="red">30</font>

<font color="blue">void</font> swap( <font color="blue">int</font>* p1, <font color="blue">int</font>* p2 )
{
<font color="blue">int</font> temp = *p1;
*p1 = *p2;
*p2 = temp;
}

<font color="blue">int</font> main( <font color="blue">void</font> )
{
<font color="blue">int</font> seki[ SEKISU ];
<font color="blue">int</font> n, max, ret;

<font color="blue">for</font> ( n = <font color="red">0</font>; n < SEKISU; n++ )
{
seki[ n ] = n + <font color="red">1</font>;
}
srand( ( <font color="blue">unsigned</font> )time( NULL ) );

<font color="blue">for</font> ( n = <font color="red">0</font>; n < SEKISU; n++ )
{
max = SEKISU - n;
ret = rand() % max;
printf( <font color="purple">"出席番号 %2d 番の人は %2d \n"</font>, n + <font color="red">1</font>, seki[ ret ] );
swap( &seki[ ret ], &seki[ max - <font color="red">1</font> ] );
}

<font color="blue">return</font> EXIT_SUCCESS;
}</pre>


ソースを書いてくださったのでとても分かりやすかったです。
有難うございました。



この投稿にコメントする

削除パスワード

No.4179

Re:席替えをプログラムを使ってしたいのですが。。。
投稿者---あかま(2005/07/02 18:48:34)


このへんもどうぞ。
http://f4.aaa.livedoor.jp/~pointc/log872.html



この投稿にコメントする

削除パスワード

No.4183

Re:席替えをプログラムを使ってしたいのですが。。。
投稿者---びぎな(2005/07/02 22:00:42)


>このへんもどうぞ。
>http://f4.aaa.livedoor.jp/~pointc/log872.html

お返事有難うございました。
参考にさせてもらいます。ありがとうございました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity