数学建模社区-数学中国
标题:
【连载】科普之---随机数的应用(猜数字游戏的实现)
[打印本页]
作者:
wangzheng3056
时间:
2013-7-30 10:11
标题:
【连载】科普之---随机数的应用(猜数字游戏的实现)
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑
" a% M* v7 h2 L' A2 Y. D
/ [& m( @: R0 F/ \
上一篇:
科普之-------随机数rand()的用法
4 @+ Q, Q% m( v. Q5 g( t+ z
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
( x- } l0 R# j0 e* Q [
程序的流程是:
! _4 U' Z# Y4 M: E& r9 q$ l ^
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
. U0 w. m1 w1 Z/ S& H
2.要求用户输入四位数
. k% t: J3 E" ~# K# V$ ]
3.程序将用户输入的四位数分离,放在数组的四个元组中
# M+ e7 @' D9 L' w: R ]" [
4.将两个数组进行对比,记录对比结果
6 z! A. `4 X. a
5.输出结果
5 L6 `3 H/ O# {& U
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
2013-7-30 10:11 上传
点击文件名下载附件
下载积分: 体力 -2 点
#include<stdio.h>
9 d1 x0 l1 j6 i# D" p' }( @ k
#include<stdlib.h>
8 v- e$ y ` U: c
#include<time.h>
8 @5 V0 C+ N9 k& I8 k5 A) Q
int judge(int *a,int *b)
2 d( Y2 o& P n/ H( C2 t) h
{
% Q0 m7 Z' m/ n, E! E
int i,j;
6 y+ i0 F& a" ?# C [2 ^
int count_A,count_B;
/ o; d: l! q& S9 N; A
count_A = count_B = 0;
8 T8 S7 w7 I, Z$ b: Y: h
for(i = 0;i<4 ;i++ )
9 t# O8 ]' s0 `0 `
{
3 B* A& v E& {7 {1 Y" V
if(a[i] == b[i]) count_A++;
F, J+ F p" ~
}
# z/ u( }* L9 v4 Z8 n
* Y6 H5 o) p8 r/ p A1 m. g
if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
/ w4 w* A1 q! w x4 z
for(i = 0; i < 4;i ++)
& X7 A: h' V2 {8 V3 k/ q) B7 F
{
; U$ s. v% c2 X$ C/ Y% K( w; g
for(j = 0;j < 4;j ++)
' q G6 A3 G" N8 r) \1 {& l" v
{
2 W+ Z, H* t8 {0 |
if(a[j] == b[i]) {count_B++;j = 4;}
4 U @6 t' G3 x6 x3 c: |
}
9 F. D0 L c1 c! Y2 {4 \
}
9 z, k, o. S3 s- k
printf("%dA%dB\n",count_A,count_B);
; f" h. ?6 U2 m" L9 ?$ G
return 0;
; Q8 I. P- s/ g4 M3 T. e, H
}
/ f0 D9 i; ?/ P# L: A6 }- O& r$ Z) Z
void main()//c语言版猜数字游戏
( t* c( D$ e' H% j
{
: o3 f: h& D8 @
int r_num[4];
8 e& S- c( k8 \" J/ R" H
int input_num[4];
3 P) w# C- U7 j/ g1 \* p6 P
srand(time(0));
8 `/ Y$ ^2 s9 i) ^; {0 r
int j,i = 0,temp1,temp2 = 0;
% s W) E. B2 L
/*********************生成四个随机数***********************/
* F* z- J9 D4 Y! s+ B& k
while(i<4)
! H/ I0 y3 X. L! j
{
$ n' V+ e6 `/ S' ?7 v4 m
if(i == 0) {r_num[i] = rand()%10;i++;}
8 y4 z/ t- ]8 c0 G' i. |
else
1 ~2 k* {, d/ D; Q/ i6 c
{
) ], X- b: { c& ^ o9 y0 ]4 x
temp1 = rand()%10;
0 u7 f3 y: I2 t" ?/ t' w2 H
for(j=0;j<i;j++)
, Q7 ?+ F% j0 ] e
{
; U4 h1 I, A* R4 L3 d
if(temp1 == r_num[j]) temp2++;
9 k. ^# _( S; Z N9 N" }$ _( x
}
( P6 N, }% ?1 \$ ]% @, F
if(temp2 == 0)
. v1 n0 X% f+ b7 ^1 m
{
: [: N9 p9 |% F2 K/ m3 f
r_num[i] = temp1;
! P7 w; D/ B0 @: L9 t& Y( W
temp2 = 0;
/ ], _* n5 f2 O( n. T
i ++;
% E4 q$ D7 r v" l( j, ?
}
% X- T) F8 M6 b p4 q
else
4 _3 X6 m9 F5 e& S7 D5 k
{
& l. {# t. }9 \7 Z. `
temp2 = 0;
' j' i, E3 f3 F! g0 C' W. U
continue;
& a# L3 ?' v5 l- {
}
e! ]9 M2 I& P8 X
}
9 ?2 s( ~% Q* F
}
1 R- K1 _5 D8 X0 G
for(i = 0;i<4;i++)
+ R, X; B( L- d5 B+ m- r
printf("%d\n",r_num[i]);
) M2 f6 I: @; {1 e0 ^
/************************猜数字游戏核心部分*********************/
( {! m, S/ Y* [+ L [ S$ V' @
for(;;)
, q1 O! G' x; N$ R% Q; _- j; T
{
, Y; d V. o5 c0 n4 t* k
scanf("%d",&j);
5 V; m U8 r p
input_num[0] = j/1000;
' v. l" t: K M0 v9 q, l
input_num[3] = j%10;
5 W2 z+ I4 f8 G K% k7 U' u
input_num[1] = (j - input_num[0]*1000)/100;
3 `8 G- f `) O, o
input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
7 n9 M( S( _* J( k1 A1 q) g& e% |
/********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
, f# d" d. y# ^' ?9 |5 z+ s
if(judge(input_num,r_num)==1) break;
4 [' ]" r; s/ E3 _2 n
else
f5 W/ t, g' _0 N' {7 A2 T
continue;
8 Y W) b1 m$ r
}
. f6 l2 B# i6 @& y- k, e! P/ Y5 m& Z
}
复制代码
作者:
百年孤独
时间:
2013-7-30 10:25
今天果然及时更新了!威武~~~
作者:
wangzheng3056
时间:
2013-7-30 11:20
我想知道大家想用随机数做什么, 大家给点意见~!!!!好让我连载下去
作者:
平凡之不凡
时间:
2013-7-30 17:41
如果与统计学挂钩,随机数很重要
作者:
他山石
时间:
2013-8-8 18:03
确实。如果向数据挖掘方面走。我觉得更好。
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5