数学建模社区-数学中国
标题:
【连载】科普之---随机数的应用(猜数字游戏的实现)
[打印本页]
作者:
wangzheng3056
时间:
2013-7-30 10:11
标题:
【连载】科普之---随机数的应用(猜数字游戏的实现)
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑
" J. T, ?7 i k h) {. E" D# P
2 Q D3 U$ d3 f \$ o# C. ]1 ]
上一篇:
科普之-------随机数rand()的用法
$ W K1 Y, T( a# W
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
1 O" ~& O* }9 G$ ?6 y
程序的流程是:
+ @0 s& N* J" q' ^& b9 T: i
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
( A& z# v! _6 R3 q7 N& v; O
2.要求用户输入四位数
& R. I; ]. p) U3 o+ K
3.程序将用户输入的四位数分离,放在数组的四个元组中
2 f( U9 ?5 R# y+ ]* S- e
4.将两个数组进行对比,记录对比结果
6 |5 w: L U; |- c( I
5.输出结果
4 Y! [4 o, h, X4 e4 O Z* p
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
2013-7-30 10:11 上传
点击文件名下载附件
下载积分: 体力 -2 点
#include<stdio.h>
$ {# O% z# x: K5 Y, p
#include<stdlib.h>
7 f M/ B1 u" u4 V
#include<time.h>
4 `) r; n' o) W) U4 d( ?
int judge(int *a,int *b)
+ J4 k1 Z3 q$ J* U+ o
{
0 b1 R7 w& p+ q# B
int i,j;
4 k* {% a ?* N: w5 k1 Y$ v3 @1 ?
int count_A,count_B;
+ p1 ~& F+ f/ q+ g$ r
count_A = count_B = 0;
" R0 O9 H1 y6 N; D1 f
for(i = 0;i<4 ;i++ )
! [3 V* e: {) S2 u( s
{
4 a `! `3 f* {7 P; x
if(a[i] == b[i]) count_A++;
) g" @7 ?3 E4 R6 `7 f9 P
}
4 t" }8 ?2 y# Y M( S
5 X6 l' z/ o4 [% G5 j0 n2 w, a
if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
3 Z' P! @. H. q) b. v1 N/ N) U1 l8 z" z
for(i = 0; i < 4;i ++)
9 h; o5 u7 E% I# t0 F2 @
{
) u! d/ \! K. U- m
for(j = 0;j < 4;j ++)
5 o4 \& F% H( }4 H% k4 d& |
{
9 ]$ S5 |+ ?) Q. Z- E
if(a[j] == b[i]) {count_B++;j = 4;}
0 k7 F, E2 {; A5 S9 ]6 \4 R
}
3 b0 L I" K6 _) u J9 m" X3 K
}
, l$ v8 l) l- _8 k. W, j
printf("%dA%dB\n",count_A,count_B);
, ~) o9 K3 y) _* c
return 0;
+ E: I. z" _) n) N& v
}
6 Y) P6 K" j: k
void main()//c语言版猜数字游戏
( \. T2 u) T4 f0 z
{
3 h: Y/ k# G& a9 l
int r_num[4];
/ d, |6 s0 b; j. G
int input_num[4];
9 Y; ]7 S" G3 a2 I- i
srand(time(0));
4 [: Z. {0 Z# O6 Q( Z! @3 t
int j,i = 0,temp1,temp2 = 0;
4 a- b- n' W1 J: \# E) v9 u
/*********************生成四个随机数***********************/
: m# a$ A: K }! c4 W* k
while(i<4)
! l- R4 i l! m: W& R4 v: @
{
: x2 R, M' {: m: t6 f8 f9 g
if(i == 0) {r_num[i] = rand()%10;i++;}
4 J" U# a! t& V
else
' I& n/ C/ Y( v+ v9 Z! g' ~( `
{
6 h$ M, ~" a$ j4 ]8 B1 [2 h# _" p. f
temp1 = rand()%10;
* O0 w# V3 I0 D) ?/ ?5 m, ^5 n
for(j=0;j<i;j++)
% z |, k1 ?" E- f, M! s
{
! H% X' R, E2 A1 X9 d9 [
if(temp1 == r_num[j]) temp2++;
0 V5 T' L. X3 x0 y. O. {" d. S
}
& R8 H [1 o* e. {- U
if(temp2 == 0)
# F2 H" E* w0 z+ c1 F! }* D2 i
{
# l4 P" w& ^5 d/ F/ B3 l* M
r_num[i] = temp1;
4 c2 Y s X: z( X! t e# O
temp2 = 0;
2 Z, n* j+ \4 Z1 ^
i ++;
7 M/ L; k/ Y# b! O
}
" g( q6 ~5 t, b# r5 S# n
else
+ f8 h: r1 y) m- M
{
4 k9 B1 e; Z, d4 `) G1 A
temp2 = 0;
. M0 T' \! v8 C
continue;
+ P5 E! ]+ S) [* [
}
* G9 V& ~( f) e: U8 C
}
$ H; K4 C* i& ]$ {
}
& j! }) l3 F) G* @) C+ |" J
for(i = 0;i<4;i++)
# C1 I4 K4 _0 X- r
printf("%d\n",r_num[i]);
9 ^! l7 T7 f5 R) Z* A+ n* i
/************************猜数字游戏核心部分*********************/
. W9 l! W: V/ j6 d% O5 k
for(;;)
+ M& R& w2 }0 w: j. j
{
1 y* e2 O/ C% H- {% n" S
scanf("%d",&j);
) k, S9 G- e* D$ M# u" o$ j( b
input_num[0] = j/1000;
3 @. n: z0 _( J
input_num[3] = j%10;
v- D! y& b6 \" H
input_num[1] = (j - input_num[0]*1000)/100;
' V7 w+ x5 f2 R: s" v7 f, q1 p
input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
* q& m0 Y# E0 _: L5 |8 y4 G7 Z
/********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
6 f$ C. [. A, k7 W/ ]/ B3 z9 k
if(judge(input_num,r_num)==1) break;
c# `2 Q+ q% X% k5 }7 S
else
$ p/ t* U: P/ H) Q0 @8 {
continue;
s4 ]3 I- p" P0 w H
}
" q3 W8 m+ m0 W4 \9 }
}
复制代码
作者:
百年孤独
时间:
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