数学建模社区-数学中国

标题: 【连载】科普之---随机数的应用(猜数字游戏的实现) [打印本页]

作者: 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: i1.生成一个四位数要求每一位都不同,放在数组的四个元组中
( A& z# v! _6 R3 q7 N& v; O2.要求用户输入四位数
& R. I; ]. p) U3 o+ K3.程序将用户输入的四位数分离,放在数组的四个元组中
2 f( U9 ?5 R# y+ ]* S- e4.将两个数组进行对比,记录对比结果6 |5 w: L  U; |- c( I
5.输出结果4 Y! [4 o, h, X4 e4 O  Z* p
猜数字游戏的实现.c (1.69 KB, 下载次数: 0)
  1. #include<stdio.h>
    $ {# O% z# x: K5 Y, p
  2. #include<stdlib.h>
    7 f  M/ B1 u" u4 V
  3. #include<time.h>
    4 `) r; n' o) W) U4 d( ?
  4. int judge(int *a,int *b)+ J4 k1 Z3 q$ J* U+ o
  5. {
    0 b1 R7 w& p+ q# B
  6.     int i,j;4 k* {% a  ?* N: w5 k1 Y$ v3 @1 ?
  7.     int count_A,count_B;+ p1 ~& F+ f/ q+ g$ r
  8.     count_A = count_B = 0;
    " R0 O9 H1 y6 N; D1 f
  9.     for(i = 0;i<4 ;i++ )
    ! [3 V* e: {) S2 u( s
  10.     { 4 a  `! `3 f* {7 P; x
  11.         if(a[i] == b[i])  count_A++;) g" @7 ?3 E4 R6 `7 f9 P
  12.     }4 t" }8 ?2 y# Y  M( S
  13. 5 X6 l' z/ o4 [% G5 j0 n2 w, a
  14.     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
  15.     for(i = 0; i < 4;i ++)9 h; o5 u7 E% I# t0 F2 @
  16.     { ) u! d/ \! K. U- m
  17.         for(j = 0;j < 4;j ++)5 o4 \& F% H( }4 H% k4 d& |
  18.         {9 ]$ S5 |+ ?) Q. Z- E
  19.              if(a[j] == b[i]) {count_B++;j = 4;}0 k7 F, E2 {; A5 S9 ]6 \4 R
  20.          }3 b0 L  I" K6 _) u  J9 m" X3 K
  21.     }, l$ v8 l) l- _8 k. W, j
  22.     printf("%dA%dB\n",count_A,count_B);
    , ~) o9 K3 y) _* c
  23.     return 0;+ E: I. z" _) n) N& v
  24. }6 Y) P6 K" j: k
  25. void main()//c语言版猜数字游戏( \. T2 u) T4 f0 z
  26. {3 h: Y/ k# G& a9 l
  27.     int r_num[4];
    / d, |6 s0 b; j. G
  28.     int input_num[4];
    9 Y; ]7 S" G3 a2 I- i
  29.     srand(time(0));
    4 [: Z. {0 Z# O6 Q( Z! @3 t
  30.     int j,i = 0,temp1,temp2 = 0;
    4 a- b- n' W1 J: \# E) v9 u
  31.     /*********************生成四个随机数***********************/
    : m# a$ A: K  }! c4 W* k
  32.     while(i<4)! l- R4 i  l! m: W& R4 v: @
  33.     {: x2 R, M' {: m: t6 f8 f9 g
  34.        if(i == 0) {r_num[i] = rand()%10;i++;}
    4 J" U# a! t& V
  35.        else
    ' I& n/ C/ Y( v+ v9 Z! g' ~( `
  36.        {
    6 h$ M, ~" a$ j4 ]8 B1 [2 h# _" p. f
  37.            temp1 = rand()%10;* O0 w# V3 I0 D) ?/ ?5 m, ^5 n
  38.            for(j=0;j<i;j++)% z  |, k1 ?" E- f, M! s
  39.            {
    ! H% X' R, E2 A1 X9 d9 [
  40.                if(temp1 == r_num[j]) temp2++;       0 V5 T' L. X3 x0 y. O. {" d. S
  41.            }& R8 H  [1 o* e. {- U
  42.            if(temp2 == 0)
    # F2 H" E* w0 z+ c1 F! }* D2 i
  43.            {# l4 P" w& ^5 d/ F/ B3 l* M
  44.                r_num[i] = temp1;
    4 c2 Y  s  X: z( X! t  e# O
  45.                temp2 = 0;
    2 Z, n* j+ \4 Z1 ^
  46.                i ++;
    7 M/ L; k/ Y# b! O
  47.            }" g( q6 ~5 t, b# r5 S# n
  48.            else
    + f8 h: r1 y) m- M
  49.            {4 k9 B1 e; Z, d4 `) G1 A
  50.                temp2 = 0;
    . M0 T' \! v8 C
  51.                continue;
    + P5 E! ]+ S) [* [
  52.             }
    * G9 V& ~( f) e: U8 C
  53.        }   $ H; K4 C* i& ]$ {
  54.     }& j! }) l3 F) G* @) C+ |" J
  55.     for(i = 0;i<4;i++)# C1 I4 K4 _0 X- r
  56.     printf("%d\n",r_num[i]);9 ^! l7 T7 f5 R) Z* A+ n* i
  57.     /************************猜数字游戏核心部分*********************/
    . W9 l! W: V/ j6 d% O5 k
  58.     for(;;)+ M& R& w2 }0 w: j. j
  59.     {1 y* e2 O/ C% H- {% n" S
  60.         scanf("%d",&j);
    ) k, S9 G- e* D$ M# u" o$ j( b
  61.         input_num[0] =  j/1000;
    3 @. n: z0 _( J
  62.         input_num[3] =  j%10;
      v- D! y& b6 \" H
  63.         input_num[1] = (j - input_num[0]*1000)/100;' V7 w+ x5 f2 R: s" v7 f, q1 p
  64.         input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
    * q& m0 Y# E0 _: L5 |8 y4 G7 Z
  65.         /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/6 f$ C. [. A, k7 W/ ]/ B3 z9 k
  66.         if(judge(input_num,r_num)==1) break;
      c# `2 Q+ q% X% k5 }7 S
  67.         else
    $ p/ t* U: P/ H) Q0 @8 {
  68.             continue;  s4 ]3 I- p" P0 w  H
  69.     }" q3 W8 m+ m0 W4 \9 }
  70. }
复制代码

作者: 百年孤独    时间: 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