数学建模社区-数学中国
标题:
【连载】科普之---随机数的应用(猜数字游戏的实现)
[打印本页]
作者:
wangzheng3056
时间:
2013-7-30 10:11
标题:
【连载】科普之---随机数的应用(猜数字游戏的实现)
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑
& o+ m0 e7 ^1 f. [+ H$ J
# ~( D# v) G. p0 D) M- v
上一篇:
科普之-------随机数rand()的用法
. [/ `3 f) E, [; V7 S5 b; d
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
' |! `- e7 J4 P" P+ w
程序的流程是:
* F* k9 _5 @8 Q6 T; S; X' R
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
2 v: P- f7 s7 ?/ Z& j6 s
2.要求用户输入四位数
: [6 ^* B5 F3 O6 E* d
3.程序将用户输入的四位数分离,放在数组的四个元组中
6 h3 J/ ]- @' {- O4 e4 N( X7 D% E
4.将两个数组进行对比,记录对比结果
, G# F! N8 X/ W# S
5.输出结果
, U5 f5 d2 R8 k' {
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
2013-7-30 10:11 上传
点击文件名下载附件
下载积分: 体力 -2 点
#include<stdio.h>
: i7 F, e4 @0 y6 Y0 Z
#include<stdlib.h>
1 @" S- d$ s6 f5 O! j, g! y
#include<time.h>
0 E5 w3 ~* f5 L6 {5 y" L" Q+ h
int judge(int *a,int *b)
4 v; u0 H3 F* }: G$ n
{
6 y) k% ]2 X: t" T0 x- t
int i,j;
+ B# r8 d7 X( Q, l$ y, A7 `
int count_A,count_B;
w$ P$ M1 z0 q. n# ^
count_A = count_B = 0;
+ h3 M7 O* A1 k- S
for(i = 0;i<4 ;i++ )
/ P' n+ s( E& W. y0 U" v: E2 ?/ K7 A
{
6 x# Y3 P/ e$ \( Z, `
if(a[i] == b[i]) count_A++;
. ?; ]* B7 W* G8 H0 m( r: ?6 g: e) P" c
}
6 H/ _1 J- J" u
* t4 E% n) j; P5 P
if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
2 s( ^ f! q1 m2 l& H" W
for(i = 0; i < 4;i ++)
. I8 N# s+ d N/ S& g8 ~" a
{
4 F: `2 j8 u" ?
for(j = 0;j < 4;j ++)
+ i9 G: z' d! D8 H8 k: x
{
$ {% p3 c' f9 B* A
if(a[j] == b[i]) {count_B++;j = 4;}
- N: ]( |+ Z# Z( J2 B# _) b9 y' |+ X
}
; I3 D+ m2 I4 U8 `: S8 }5 Q
}
% o: M+ E7 q, A5 M
printf("%dA%dB\n",count_A,count_B);
. v4 [5 K; P$ Q, I# L
return 0;
! A+ A- [" {( l. W5 [ i
}
7 Z5 }1 ~" m9 ^: f
void main()//c语言版猜数字游戏
/ V( D9 T9 P% B9 q' r6 Y
{
8 w, M) P' H3 ]) q: s% B8 i1 D
int r_num[4];
' F4 Y) E1 l) [3 U. S
int input_num[4];
. N5 s+ I; ^7 u+ ?: f' A
srand(time(0));
3 e/ X# D8 |8 w+ s8 [1 ~6 `
int j,i = 0,temp1,temp2 = 0;
$ M! \& G, w' B- t; ^, P9 i
/*********************生成四个随机数***********************/
9 y, h1 j1 T8 b' r6 z4 k
while(i<4)
: B: {1 a" ~- ?* r) Z
{
0 A& _6 k$ A5 v/ N- D4 b5 ?
if(i == 0) {r_num[i] = rand()%10;i++;}
' U H- E% b8 z) w( q9 {( G E* S
else
8 L- P4 R0 K) K1 z @- O+ A
{
0 x1 r T, K: J# B* [. _7 p- ?7 f
temp1 = rand()%10;
4 w/ U% j/ b; P: B
for(j=0;j<i;j++)
/ @$ z2 P# v5 x t+ ^
{
4 I2 C7 L6 n1 T
if(temp1 == r_num[j]) temp2++;
9 m: D8 e5 }; C: X
}
) r8 l2 s( W6 G) B# t
if(temp2 == 0)
6 @8 ^3 F4 W m2 e8 u
{
& O2 ~% D+ T" g/ J7 u5 i
r_num[i] = temp1;
3 N6 P8 w4 y3 z
temp2 = 0;
, B9 V$ B. h( E
i ++;
% I l/ x5 A$ ^( ^0 c! k
}
2 b& p, [, g4 _ ^! s+ W5 \( {
else
) @- k* J& @% Z
{
! m$ o: X" A6 a7 y% y \ L, D& B
temp2 = 0;
: @7 }8 Y) R/ ]: _. i
continue;
7 m* P# n' l' f# @
}
2 i& b* }6 d: u& x5 _, z
}
f% t L4 }3 Y% U/ J7 c% K, g4 \
}
; p4 B6 W! {( K/ Q
for(i = 0;i<4;i++)
7 E/ I @5 T+ F# m1 V9 G; G
printf("%d\n",r_num[i]);
, ]+ I( O" z/ l0 R) f' r
/************************猜数字游戏核心部分*********************/
0 G6 B; P- `- V- X
for(;;)
. r2 X$ M0 {' x+ W7 P N
{
! {9 ?/ `+ |* x( k1 E4 H
scanf("%d",&j);
5 Q6 d6 Z3 w( l) _, A8 `
input_num[0] = j/1000;
; w. l4 _. [% d% |; U- P( m
input_num[3] = j%10;
: z: l- `) a5 X; H" r$ v& c2 M
input_num[1] = (j - input_num[0]*1000)/100;
) j) Y+ V6 s! a4 b# K/ K1 u$ C
input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
* r% |4 R2 G: c) R" W0 a$ L
/********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
; b1 ~3 f- D n, X# T
if(judge(input_num,r_num)==1) break;
0 H& l2 f4 C9 ~/ d s9 R- @
else
0 c3 n+ u- Q: i0 |; v0 ?" f
continue;
6 W/ u' }+ v) _6 U& a# ~
}
: C( ?+ u7 f5 Y
}
复制代码
作者:
百年孤独
时间:
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