数学建模社区-数学中国

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

作者: wangzheng3056    时间: 2013-7-30 10:11
标题: 【连载】科普之---随机数的应用(猜数字游戏的实现)
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑
) b+ B3 I  s* P- j& ]6 |; b$ Z- ?& M2 ^! i$ N1 L9 y3 [( @
上一篇:科普之-------随机数rand()的用法' F; H. \0 Y' F- \4 m
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
+ Q0 g4 T- h% |) a3 K. c. t1 L' ]( Q0 ^% _程序的流程是:
2 N" s/ Y- h7 s. \1.生成一个四位数要求每一位都不同,放在数组的四个元组中6 E+ v/ |6 g  F+ t, n9 p6 e
2.要求用户输入四位数
- U" p, D) j/ S& p! J3.程序将用户输入的四位数分离,放在数组的四个元组中. h  O9 r' _$ A/ E+ |
4.将两个数组进行对比,记录对比结果
% V9 V: h# t: D6 i4 j; Q5.输出结果
1 O7 i) X0 w' ?8 t 猜数字游戏的实现.c (1.69 KB, 下载次数: 0)
  1. #include<stdio.h>% b2 w, u2 ]2 ~0 n8 I
  2. #include<stdlib.h>
    + @% X- ]0 N( {2 t; M" U
  3. #include<time.h>
    6 ]4 i$ M3 N; E+ c* l6 T
  4. int judge(int *a,int *b)6 C9 v' y9 g% p0 [4 A. R
  5. {7 N2 k9 N; B* f; C
  6.     int i,j;
    ) h8 R2 T2 Y  V' {3 t! ~8 k
  7.     int count_A,count_B;
    # {3 t$ F" o! W2 C: P+ j( h! W
  8.     count_A = count_B = 0;
    5 x; j( r& w+ g% {* i! l6 {/ y
  9.     for(i = 0;i<4 ;i++ )0 ?2 E, m) Y* Q' a
  10.     { & C( t0 \8 X/ h; |: C7 }
  11.         if(a[i] == b[i])  count_A++;
    * L" W( ]5 @5 n/ O3 a
  12.     }
    % h# ~1 a- X" }8 N0 k4 L0 i2 G

  13. * @! J' E+ C9 D6 \
  14.     if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
    3 H* y6 ^( h# y  F. C
  15.     for(i = 0; i < 4;i ++)
    " b- ]& P2 }' {
  16.     { ' k' T- J; t9 T* H1 Z
  17.         for(j = 0;j < 4;j ++)
    - ]! W' ?* [1 a) [( P" q2 `
  18.         {
      w% l/ Y6 p! I4 I  |
  19.              if(a[j] == b[i]) {count_B++;j = 4;}0 @8 |. m& ~1 M4 L1 ]4 {0 Y
  20.          }
      L- G; t9 _- W6 @" P
  21.     }; C( J' W/ `8 e* u/ Y
  22.     printf("%dA%dB\n",count_A,count_B);+ I4 _0 ?- K; k/ e
  23.     return 0;
    " v" m; f. u& M' ?4 B' }$ V
  24. }7 C  S$ V2 Q7 J) ]) r0 O6 U' }
  25. void main()//c语言版猜数字游戏8 `, {5 G1 P+ j
  26. {
    6 ]0 z& Y3 C3 ?1 U
  27.     int r_num[4];
    - P8 B- e+ U( N2 k( ^, o6 B% |1 u
  28.     int input_num[4];
    / N) K% V$ v9 I7 G
  29.     srand(time(0));5 Z6 P/ M' v* u
  30.     int j,i = 0,temp1,temp2 = 0;
    % F+ L* [$ D7 ?* Z; e9 c( l$ c
  31.     /*********************生成四个随机数***********************/
    & u" S& q( }; `# x
  32.     while(i<4)
    ' G6 I  J( m. d* D$ D; k: R  p
  33.     {
    . p+ \  v9 a8 f( h! ?/ g
  34.        if(i == 0) {r_num[i] = rand()%10;i++;}0 J# L/ o; W; O
  35.        else6 D3 x# _- _5 J1 ?7 Y) f1 p
  36.        {
      O* ~& L" _) v6 h+ `5 f
  37.            temp1 = rand()%10;8 n$ B6 R$ Q1 G: h! V  ~6 v
  38.            for(j=0;j<i;j++)
    4 u: Y* g) q/ y# T% w
  39.            {( q8 [5 C% a9 R" [1 ?4 `( r7 C
  40.                if(temp1 == r_num[j]) temp2++;       % v9 t- h6 v' N+ `2 }5 `* @
  41.            }
    8 Q+ J: C& l2 R5 K
  42.            if(temp2 == 0)
    " @) h: N0 L: u9 J7 J( d
  43.            {/ b  H2 E5 S5 ?9 B( l! N, W
  44.                r_num[i] = temp1;
    3 h6 v8 L1 {. h
  45.                temp2 = 0;
    5 _. T  Q# h5 r* L
  46.                i ++;
      o5 u$ j1 R9 B# [5 s
  47.            }* ]6 ~2 g7 `% c" b
  48.            else
    ) F6 H. @! |6 Q# w1 [. [8 B0 B
  49.            {( o( S  j1 k9 O. u& h. Q  o- |
  50.                temp2 = 0;. S! V9 ]/ [  |, [5 M* ]9 o* a9 p6 B
  51.                continue;, ]" A+ _4 R0 @) n7 u' J
  52.             }( Q& J" e* S6 j+ j7 W) a5 x
  53.        }   : n0 V* a' S3 M3 v, }
  54.     }, R! d/ O2 l6 @8 d2 P' u
  55.     for(i = 0;i<4;i++)
    0 B" R% I6 T5 J8 P
  56.     printf("%d\n",r_num[i]);
    6 `* Q7 v4 L9 y1 S7 Z+ R
  57.     /************************猜数字游戏核心部分*********************/
    / R5 X# J6 \' a8 R! z; S
  58.     for(;;)# X, r) z: e: A5 K7 c0 r8 I
  59.     {) {6 D; B$ y1 w; E' a8 ]( o$ w
  60.         scanf("%d",&j);7 i7 P0 C7 {  i# U
  61.         input_num[0] =  j/1000;
    & e  j: S; j. d' j1 x& d; P8 j
  62.         input_num[3] =  j%10;' L6 h* ?7 o$ E0 G6 t. p, l8 l
  63.         input_num[1] = (j - input_num[0]*1000)/100;+ i% H: ~; U( Y
  64.         input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
    . O/ z0 `  y6 @$ v' |
  65.         /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
    6 i7 K7 n, Z% s+ o7 O/ A9 x
  66.         if(judge(input_num,r_num)==1) break;
    # W% R8 N. J) J
  67.         else
    : T' w7 A, l. N* a! q$ @- I
  68.             continue;
    ( Y7 v5 c' X9 I* R
  69.     }
    6 M$ r- G7 I$ ?
  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