数学建模社区-数学中国
标题:
【连载】科普之---随机数的应用(猜数字游戏的实现)
[打印本页]
作者:
wangzheng3056
时间:
2013-7-30 10:11
标题:
【连载】科普之---随机数的应用(猜数字游戏的实现)
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑
( e4 W5 G: f3 ~2 I# l t9 e
1 [) `0 T: x! c$ Y, {/ G6 k
上一篇:
科普之-------随机数rand()的用法
& c: w/ O1 O, b$ I/ X7 ]+ u
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
0 X; {9 ^1 j5 g( S1 y8 S
程序的流程是:
8 U4 |+ B1 o, ]# w2 N: l
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
1 m, g7 A6 N' l3 i9 {2 m
2.要求用户输入四位数
" l7 C/ U/ M O
3.程序将用户输入的四位数分离,放在数组的四个元组中
( Y! ]! w# L5 v- K! ~
4.将两个数组进行对比,记录对比结果
5 ~( |! Z' [* @/ D; o) h* e
5.输出结果
( X& M! w# L. r8 k
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
2013-7-30 10:11 上传
点击文件名下载附件
下载积分: 体力 -2 点
#include<stdio.h>
: v* Y: s5 P4 ]! V6 y
#include<stdlib.h>
0 k( z- ^" L6 ^, H3 w
#include<time.h>
% V) C7 g; Z7 R4 l- N9 z
int judge(int *a,int *b)
/ G* i7 i* a1 Z! {8 |& R: d# b
{
9 T- a" P, D! u
int i,j;
/ y' }7 H. r' s4 o
int count_A,count_B;
# A7 H! U* U& n( i5 ?
count_A = count_B = 0;
) ]' M0 @) H$ E$ A
for(i = 0;i<4 ;i++ )
6 x" {# ~/ _6 a% X* z
{
3 J7 a$ J4 F; l: I/ {
if(a[i] == b[i]) count_A++;
: F, f" E; l& e8 C: ?
}
. X" }! u) u& W2 s
9 \ `% h/ b+ J% n# p
if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
% M. m+ P6 U5 N; r
for(i = 0; i < 4;i ++)
4 C9 \& k, n# G
{
' q2 r' i$ x2 l" i- t( g
for(j = 0;j < 4;j ++)
0 r$ V) b1 r6 e) t5 T0 e0 k/ @4 T% P
{
; k% r U" M" {
if(a[j] == b[i]) {count_B++;j = 4;}
3 H/ \4 w2 l' G3 W% E
}
) r- V( f+ ~( s' B( P' H
}
0 G& e) P: E/ O5 {
printf("%dA%dB\n",count_A,count_B);
. R& v8 R& C2 F1 Q; S7 u5 P# a) o
return 0;
! O2 P/ g+ k4 Z) c/ c! j6 M* [
}
6 C/ n. p5 V: ?" C0 n
void main()//c语言版猜数字游戏
2 x7 q5 q( H% w' E Q' K8 _" V
{
# z$ P" [ ?2 d' z% M
int r_num[4];
. r N0 N2 J6 e* z7 G/ p4 y. @0 U; s
int input_num[4];
4 a% |1 A- ^/ _8 J+ M. t
srand(time(0));
1 j) O0 g, o/ S; O. `8 V$ l
int j,i = 0,temp1,temp2 = 0;
& \4 p4 ^! [8 z1 d
/*********************生成四个随机数***********************/
" k1 u, K* {, _. e) I
while(i<4)
, l& M w8 s* _; i9 U7 p0 O
{
# T* g% F) Z0 i- B) E; b: U
if(i == 0) {r_num[i] = rand()%10;i++;}
9 A7 H& ~' _# S2 Z, r
else
0 P1 |( o! F3 A: l: D5 k" ^; k: j
{
- X; k) } ^- g3 X0 V K* Q) g
temp1 = rand()%10;
- @% O6 L0 Y6 J/ |
for(j=0;j<i;j++)
; s( F3 e5 \" [3 F: X9 ]6 G
{
% r2 @4 W" F% Q: n/ C) P* I
if(temp1 == r_num[j]) temp2++;
- n! {: h# k, R* Q/ d+ I
}
( ~( Q) g% ?/ A; ^8 N
if(temp2 == 0)
; J. Q; j8 M' }# k8 s$ ]& ]
{
+ |" s! x8 F/ D2 A- P ?
r_num[i] = temp1;
8 z5 \/ }( n* y) t2 x
temp2 = 0;
# ~8 G4 e/ R' q; ?) a) h
i ++;
8 g# O2 t: r; [+ ?; \7 O# `: C
}
9 Q7 A# C# r3 n) {
else
8 T; r7 S/ m- V4 H
{
9 |- C) s8 E5 F; O
temp2 = 0;
' g5 Q! \+ _9 }* I* B5 i2 g
continue;
8 D, |( v/ [% a
}
& l! d3 B! g2 j* h, s5 t
}
4 ^9 V2 y# D# P! k) v
}
8 i% N: _3 j& i
for(i = 0;i<4;i++)
1 n1 d# l3 L: K, o! n8 ` f/ [
printf("%d\n",r_num[i]);
* ^- ?; g5 ^! S8 c
/************************猜数字游戏核心部分*********************/
: Z1 C# L7 M7 A5 o/ J* C5 w( w
for(;;)
) K9 q* n' _ `! F/ `& J
{
! Y9 ?* I: \1 n/ E2 j( A
scanf("%d",&j);
n6 j$ H4 [8 b9 ~
input_num[0] = j/1000;
% V0 Z! B- Y2 x0 V& p5 r! w
input_num[3] = j%10;
4 @" w9 V" _% x9 h
input_num[1] = (j - input_num[0]*1000)/100;
9 \* @% L5 A9 y6 K$ ?) B6 C
input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
; L& E" P( a1 U0 o! e
/********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
- p, t* V2 H; k* x3 c$ B6 X
if(judge(input_num,r_num)==1) break;
+ T% f# b) @8 M, }7 R+ P
else
9 v# C4 s5 R" j1 ^1 k/ f/ Z4 {9 H
continue;
4 \" X/ S7 k5 P
}
3 e! ~1 X) {9 X+ t
}
复制代码
作者:
百年孤独
时间:
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