規格値を設けた結果表示方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
gak0916

規格値を設けた結果表示方法

#1

投稿記事 by gak0916 » 12年前

当方初心者です。いろいろ見ながら勉強していますが
行き詰ってしまったため
ご教示お願います。

簡単な抽選結果のシミュレーションなのですが
例えば、7000(適当)回抽選した結果を以下のように
表示したいのですが

回数 抽選値 当選名
1   2314  AAA
2   28971 BBB
3 56 CCC
4 9877 DDD
・   ・   ・
・   ・   ・
7000 19087 EEE

ちなみに当選名は、抽選値の規格範囲で選択されます。
例えばですが(上記と合わせるなら)、抽選値が
1~200までならCCC
201~2500までならAAA
2501~10000までならDDD
が表示されるといった感じの内容です。

抽選値は乱数そのものです。毎回値が変化してくれないと困ります。
簡易的に、srand((unsigned )time(NULL)で初期化して
rand =()で表示させています。

何を悩んでいるかというと、当選名と抽選値のつながりのところで悩んでおり、うまく表示できません。

要は上述のような結果が表示できるようにしたいのですが
熟練の皆様のお知恵をおかりしたいのでお願い致します。

non
記事: 1097
登録日時: 13年前

Re: 規格値を設けた結果表示方法

#2

投稿記事 by non » 12年前

その、うまくいかないプログラムを載せてください。

それと、質問ですが、一度出た抽選値はもう出てはいけないのですか?
また、抽選値の範囲は?
non

gak0916

Re: 規格値を設けた結果表示方法

#3

投稿記事 by gak0916 » 12年前

当選名はこれから表示させようと考えているところです。

現段階の内容は以下のとおり

//
#include "stdafx.h"
#include <stdlib.h>
#include <time.h>
#include <conio.h>

int main(int argc, TCHAR *argv[])
{
char ch ='\0';

printf("乱数による 小役抽選 を行います\n");
printf("よろしいですか? y/n ?\n");
scanf_s

("%c",&ch);

if ('y'== ch)
{
//抽選値表・・・
printf("~~~~抽選値一覧~~~~\n");
printf("1: AA :[1~229]\n");
printf("2: BB :[230~377]\n");
printf("3: CC :[378~10780]\n");
printf("4: DD :[10781~12732]\n");
printf("5: EE :[12733~12792]\n");
printf("6: FF :[12793~12852]\n");
printf("7: GG :[12853~21830]\n");
printf("8: HH :[21831~32767]\n");
printf("\n");

//使用する変数を宣言!
int i, x, a;
time_t t;

//↓乱数の初期化を行う
srand((unsigned int)time(&t));

//↓乱数(抽選値)を100個生成する
printf("<回数> <抽選値> <当選名>\n");
for (i = 0; i < 100; i++) {

//↓生成した乱数を表示する場合
//printf("\n");
//printf("コンピューターが生成した乱数値は ⇒ ");
//printf("%d\n",x);

//繰返し回数の設定
x = rand();
printf("%5d: %7d\n",(i+1) ,x );
}


/*↓乱数値と抽選値の比較条件の当選値を決定
if (x >= 1 && x <= 229)
printf("抽選結果は 1:AA に当選しました! \n");
else if (x >= 230 && x <= 377)
printf("抽選結果は 2:BB に当選しました! \n");
else if (x >= 378 && x <= 10780)
printf("抽選結果は 3:CC に当選しました! \n");
else if (x >= 10781 && x <= 12732)
printf("抽選結果は 4:DD に当選しました! \n");
else if (x >= 12733 && x <= 12792)
printf("抽選結果は 5:EE に当選しました! \n");
else if (x >= 12793 && x <= 12852)
printf("抽選結果は 6:FF に当選しました! \n");
else if (x >= 12853 && x <= 21830)
printf("抽選結果は 7:GG に当選しました! \n");
else if (x >= 21831 && x <= 32767)
printf("抽選結果は 8:HH に当選しました! \n");
*/}

//↓プログラムを発動しない場合の停止処理
else
{
printf("抽選を取り止めます。コマンドプロンプト表示を閉じます。\n");
}
//↓画面に結果を表示させたままにしておくためのPAUSEコマンド
system("PAUSE");
return 0;
}
//

という感じになります。

nil
記事: 428
登録日時: 12年前

Re: 規格値を設けた結果表示方法

#4

投稿記事 by nil » 12年前

コードタグをお使いください。
で、現在のコードでは何が問題となっているのですか?

non
記事: 1097
登録日時: 13年前

Re: 規格値を設けた結果表示方法

#5

投稿記事 by non » 12年前

scanf_sの使い方を調べて、今コメントになっている抽選値表をforループの中にコピーしたらいいのでは?
non

閉鎖

“C言語何でも質問掲示板” へ戻る