数学建模社区-数学中国
标题:
【连载】科普之---随机数的应用(猜数字游戏的实现)
[打印本页]
作者:
wangzheng3056
时间:
2013-7-30 10:11
标题:
【连载】科普之---随机数的应用(猜数字游戏的实现)
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑
0 _$ ~; v0 B8 q Z
- [" I& W+ I/ {# ]% p
上一篇:
科普之-------随机数rand()的用法
) O$ M3 |) A2 i8 F; Y$ ?# Q; R
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
& t- f3 B% o2 R' {8 ^
程序的流程是:
0 f0 q$ |- I1 I" p
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
# o2 N2 A+ C+ W! `! X# Y; j
2.要求用户输入四位数
' O2 ]7 M2 ?" }
3.程序将用户输入的四位数分离,放在数组的四个元组中
$ e) P2 y, Y; Q8 p2 x6 |# A
4.将两个数组进行对比,记录对比结果
6 ~2 E( Z% ?# f( S% F% {: o
5.输出结果
* W, H( O: ~5 N! K. U& l
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
2013-7-30 10:11 上传
点击文件名下载附件
下载积分: 体力 -2 点
#include<stdio.h>
9 L6 p3 ~9 c! G0 Q
#include<stdlib.h>
$ B! @4 \$ f' U! y
#include<time.h>
* j# `- t' K3 C9 g, [- `
int judge(int *a,int *b)
( v( z7 w1 W( }& Q# n+ B" @7 o
{
; J& y8 ]. i$ \, M3 q
int i,j;
* P' R; Q- F9 r" S# o$ x% F
int count_A,count_B;
3 l# | x+ A% \8 b0 |0 O
count_A = count_B = 0;
# A% w) U* d4 A/ q! X2 J+ B9 ~
for(i = 0;i<4 ;i++ )
- b* \5 F: f5 V) e6 U) K& R
{
) W7 f8 B7 n4 U3 y# \4 T
if(a[i] == b[i]) count_A++;
; V1 M/ P+ j3 e( n
}
8 J: B1 o5 f+ h
% D( T7 Z( `& P' o" X" n
if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
# b+ C8 ^" [# X
for(i = 0; i < 4;i ++)
1 g# W* I: \4 w4 o- l# v' u
{
9 q% f2 D: H5 q. O" M9 f8 L
for(j = 0;j < 4;j ++)
7 m# y5 m& E: N! X
{
: J5 d6 a1 @& W6 p+ f- q) J
if(a[j] == b[i]) {count_B++;j = 4;}
( }0 I, s, H* O
}
$ F; G: g t5 y6 k! b
}
3 U% g+ X' I! O
printf("%dA%dB\n",count_A,count_B);
' @# M- N6 y! S2 L
return 0;
! [0 V. n& q$ r" z9 H
}
7 V5 ?7 @! X3 c1 W& W |
void main()//c语言版猜数字游戏
/ v5 ^# \8 R; I8 @# |3 L; i) Z
{
% R* n) L# X- {+ E
int r_num[4];
9 a! a( C# j9 H$ ^
int input_num[4];
0 q4 j6 d" {* K
srand(time(0));
+ t* S6 K9 d" @8 E3 x* h
int j,i = 0,temp1,temp2 = 0;
! y0 g1 [, k" f( J" Y
/*********************生成四个随机数***********************/
$ E* ^6 m$ ~3 t
while(i<4)
% y6 V5 B, @2 i2 }
{
8 A$ K- W! E' v( K
if(i == 0) {r_num[i] = rand()%10;i++;}
7 k! S. E7 ? l$ h. u8 E' G5 t
else
1 G$ W1 V3 ]0 P4 R( U _4 E
{
6 S2 _9 H; [9 g$ l/ o
temp1 = rand()%10;
! I2 u/ k! m9 v
for(j=0;j<i;j++)
0 J7 n' X/ B- M+ s. V9 D
{
' _ W+ K+ V) B
if(temp1 == r_num[j]) temp2++;
7 O5 k% e" X u" X2 r. v
}
+ G7 V; l" A \) ]. S( F$ s. L5 a2 V
if(temp2 == 0)
5 ]; |1 Q0 P. i# }5 p
{
7 M/ z+ Z: N6 Z- H8 ~- [
r_num[i] = temp1;
0 c! |0 n( a* E% w* c* M% j* \
temp2 = 0;
4 f9 F& |8 |6 H) n
i ++;
h" ~- h/ O) c3 Z! L# Z$ S0 p1 L
}
# o& G8 y) T* u E
else
$ g* E2 B6 O& N) i) J$ J
{
. u8 L0 J: R+ Z# r, F' A6 h
temp2 = 0;
t0 P- X* c* u, ?
continue;
+ A N0 g" _; G. I4 Y
}
% Z K4 K! ^7 I5 {5 d5 m& s& `5 G
}
, Y% X* L/ \. z M7 u. @
}
2 j* l- n O, K
for(i = 0;i<4;i++)
* J3 V1 k S; v, d8 ^5 k1 b
printf("%d\n",r_num[i]);
. N9 m; V @) y6 {0 l
/************************猜数字游戏核心部分*********************/
0 \) z8 A5 u0 o+ n, M/ M
for(;;)
& l$ X9 ?4 f3 G* g6 E9 [# @
{
8 @& a/ [# e6 y: S/ e9 l0 w/ l6 z
scanf("%d",&j);
1 ~+ a1 C* D9 T- `# q
input_num[0] = j/1000;
+ v! C/ {$ \5 T9 n9 u4 }7 t9 q% ?
input_num[3] = j%10;
; H5 @) a) ^/ J) G! e6 g$ g: G
input_num[1] = (j - input_num[0]*1000)/100;
! r8 M0 p) ~" b# G2 R! n
input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
6 B) h8 Y2 L) f$ m3 J V2 r2 }
/********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
, L- p+ b2 e: I
if(judge(input_num,r_num)==1) break;
7 @. Y7 Z3 g2 T( x, E) O& L
else
- A& ^( J. ~$ H: ]- @- c$ [ r
continue;
; h: Z8 E U0 ^7 N% h
}
: @, m* a d: e& f( Y; V) ?
}
复制代码
作者:
百年孤独
时间:
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