数学建模社区-数学中国
标题:
【连载】科普之---随机数的应用(猜数字游戏的实现)
[打印本页]
作者:
wangzheng3056
时间:
2013-7-30 10:11
标题:
【连载】科普之---随机数的应用(猜数字游戏的实现)
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑
) b+ B3 I s* P- j& ]6 |; b$ Z- ?& M
2 ^! i$ N1 L9 y3 [( @
上一篇:
科普之-------随机数rand()的用法
' F; H. \0 Y' F- \4 m
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
+ Q0 g4 T- h% |) a3 K. c. t1 L' ]( Q0 ^% _
程序的流程是:
2 N" s/ Y- h7 s. \
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
6 E+ v/ |6 g F+ t, n9 p6 e
2.要求用户输入四位数
- U" p, D) j/ S& p! J
3.程序将用户输入的四位数分离,放在数组的四个元组中
. h O9 r' _$ A/ E+ |
4.将两个数组进行对比,记录对比结果
% V9 V: h# t: D6 i4 j; Q
5.输出结果
1 O7 i) X0 w' ?8 t
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
2013-7-30 10:11 上传
点击文件名下载附件
下载积分: 体力 -2 点
#include<stdio.h>
% b2 w, u2 ]2 ~0 n8 I
#include<stdlib.h>
+ @% X- ]0 N( {2 t; M" U
#include<time.h>
6 ]4 i$ M3 N; E+ c* l6 T
int judge(int *a,int *b)
6 C9 v' y9 g% p0 [4 A. R
{
7 N2 k9 N; B* f; C
int i,j;
) h8 R2 T2 Y V' {3 t! ~8 k
int count_A,count_B;
# {3 t$ F" o! W2 C: P+ j( h! W
count_A = count_B = 0;
5 x; j( r& w+ g% {* i! l6 {/ y
for(i = 0;i<4 ;i++ )
0 ?2 E, m) Y* Q' a
{
& C( t0 \8 X/ h; |: C7 }
if(a[i] == b[i]) count_A++;
* L" W( ]5 @5 n/ O3 a
}
% h# ~1 a- X" }8 N0 k4 L0 i2 G
* @! J' E+ C9 D6 \
if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
3 H* y6 ^( h# y F. C
for(i = 0; i < 4;i ++)
" b- ]& P2 }' {
{
' k' T- J; t9 T* H1 Z
for(j = 0;j < 4;j ++)
- ]! W' ?* [1 a) [( P" q2 `
{
w% l/ Y6 p! I4 I |
if(a[j] == b[i]) {count_B++;j = 4;}
0 @8 |. m& ~1 M4 L1 ]4 {0 Y
}
L- G; t9 _- W6 @" P
}
; C( J' W/ `8 e* u/ Y
printf("%dA%dB\n",count_A,count_B);
+ I4 _0 ?- K; k/ e
return 0;
" v" m; f. u& M' ?4 B' }$ V
}
7 C S$ V2 Q7 J) ]) r0 O6 U' }
void main()//c语言版猜数字游戏
8 `, {5 G1 P+ j
{
6 ]0 z& Y3 C3 ?1 U
int r_num[4];
- P8 B- e+ U( N2 k( ^, o6 B% |1 u
int input_num[4];
/ N) K% V$ v9 I7 G
srand(time(0));
5 Z6 P/ M' v* u
int j,i = 0,temp1,temp2 = 0;
% F+ L* [$ D7 ?* Z; e9 c( l$ c
/*********************生成四个随机数***********************/
& u" S& q( }; `# x
while(i<4)
' G6 I J( m. d* D$ D; k: R p
{
. p+ \ v9 a8 f( h! ?/ g
if(i == 0) {r_num[i] = rand()%10;i++;}
0 J# L/ o; W; O
else
6 D3 x# _- _5 J1 ?7 Y) f1 p
{
O* ~& L" _) v6 h+ `5 f
temp1 = rand()%10;
8 n$ B6 R$ Q1 G: h! V ~6 v
for(j=0;j<i;j++)
4 u: Y* g) q/ y# T% w
{
( q8 [5 C% a9 R" [1 ?4 `( r7 C
if(temp1 == r_num[j]) temp2++;
% v9 t- h6 v' N+ `2 }5 `* @
}
8 Q+ J: C& l2 R5 K
if(temp2 == 0)
" @) h: N0 L: u9 J7 J( d
{
/ b H2 E5 S5 ?9 B( l! N, W
r_num[i] = temp1;
3 h6 v8 L1 {. h
temp2 = 0;
5 _. T Q# h5 r* L
i ++;
o5 u$ j1 R9 B# [5 s
}
* ]6 ~2 g7 `% c" b
else
) F6 H. @! |6 Q# w1 [. [8 B0 B
{
( o( S j1 k9 O. u& h. Q o- |
temp2 = 0;
. S! V9 ]/ [ |, [5 M* ]9 o* a9 p6 B
continue;
, ]" A+ _4 R0 @) n7 u' J
}
( Q& J" e* S6 j+ j7 W) a5 x
}
: n0 V* a' S3 M3 v, }
}
, R! d/ O2 l6 @8 d2 P' u
for(i = 0;i<4;i++)
0 B" R% I6 T5 J8 P
printf("%d\n",r_num[i]);
6 `* Q7 v4 L9 y1 S7 Z+ R
/************************猜数字游戏核心部分*********************/
/ R5 X# J6 \' a8 R! z; S
for(;;)
# X, r) z: e: A5 K7 c0 r8 I
{
) {6 D; B$ y1 w; E' a8 ]( o$ w
scanf("%d",&j);
7 i7 P0 C7 { i# U
input_num[0] = j/1000;
& e j: S; j. d' j1 x& d; P8 j
input_num[3] = j%10;
' L6 h* ?7 o$ E0 G6 t. p, l8 l
input_num[1] = (j - input_num[0]*1000)/100;
+ i% H: ~; U( Y
input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
. O/ z0 ` y6 @$ v' |
/********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
6 i7 K7 n, Z% s+ o7 O/ A9 x
if(judge(input_num,r_num)==1) break;
# W% R8 N. J) J
else
: T' w7 A, l. N* a! q$ @- I
continue;
( Y7 v5 c' X9 I* R
}
6 M$ r- G7 I$ ?
}
复制代码
作者:
百年孤独
时间:
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