数学建模社区-数学中国

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

作者: wangzheng3056    时间: 2013-7-30 10:11
标题: 【连载】科普之---随机数的应用(猜数字游戏的实现)
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑 & }" M7 \$ W2 w& K2 x5 s/ ?# g
* i: O! x# s8 @
上一篇:科普之-------随机数rand()的用法8 y; n1 [% z" v5 l$ N
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
: \  B: N! U  X6 S0 v程序的流程是:
0 ?) k' e! z* i1 }: {1.生成一个四位数要求每一位都不同,放在数组的四个元组中* ]: Z8 c$ J6 i5 j: }
2.要求用户输入四位数* h2 D# e4 `& E7 s2 W4 S! c
3.程序将用户输入的四位数分离,放在数组的四个元组中
  f' h; V+ L# q+ i' {/ z4.将两个数组进行对比,记录对比结果
% l$ r" w0 {: B( K5 c/ e: M0 M5.输出结果; t# x6 M& v. G0 H
猜数字游戏的实现.c (1.69 KB, 下载次数: 0)
  1. #include<stdio.h>% e2 V6 F/ n4 r: f/ r
  2. #include<stdlib.h>
    % f9 ]# v  e% u( l: m) w$ _& x% n
  3. #include<time.h>
    # ]5 \1 X) w8 k% q2 }& G- H
  4. int judge(int *a,int *b)
    4 ~  u2 q; x/ n! P5 u6 J
  5. {' B. J! ^$ {$ M" y* X# }2 z
  6.     int i,j;
    0 [/ x2 @0 ~! L
  7.     int count_A,count_B;* ~# k+ X* C5 o! W  D. j  y& j
  8.     count_A = count_B = 0;( i7 F( [/ h" q( a/ ?' _
  9.     for(i = 0;i<4 ;i++ )
    % W! A! @  p. {5 V0 _- Q
  10.     { 9 }: p$ T- z& q
  11.         if(a[i] == b[i])  count_A++;, a9 t5 l, ?* {$ d1 K3 n5 k
  12.     }
    6 X: T% B' ]4 q! I8 u, p8 w

  13. 7 U- Q0 h- B* Y8 z* R
  14.     if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
    + m0 K: P+ X* ?: H
  15.     for(i = 0; i < 4;i ++)( u3 P0 s+ i7 C6 D6 Q
  16.     { , k* |( {% O/ W1 Z4 M
  17.         for(j = 0;j < 4;j ++)
    # \% Q; D, t" K. K+ L4 B( M
  18.         {
    6 s1 s8 x( N& l, k2 |' W
  19.              if(a[j] == b[i]) {count_B++;j = 4;}/ x1 a& A/ z6 {5 \
  20.          }; A% Z6 y0 N! \
  21.     }
    / A/ [  h( }1 P, i
  22.     printf("%dA%dB\n",count_A,count_B);* f) x8 p; E" v$ v
  23.     return 0;
    5 d& `  N" z1 a6 i; i7 o
  24. }8 W+ Q# O/ [& L7 }
  25. void main()//c语言版猜数字游戏. \3 @7 d3 t1 ~$ q
  26. {0 @+ L$ q+ A0 V. ?
  27.     int r_num[4];! X/ a/ g3 |" s# r0 A6 A  V2 U
  28.     int input_num[4];8 h1 m" l4 A/ o* r% H7 o" i# N, T
  29.     srand(time(0));
    1 `0 f  c; K5 _; T; Z- \
  30.     int j,i = 0,temp1,temp2 = 0;4 Q9 r- w. l6 b! f8 ~8 ]& ^0 g
  31.     /*********************生成四个随机数***********************/5 w8 ]1 H" o4 k) W
  32.     while(i<4)
    ( S9 R' z6 R) Z& P- {) \/ R
  33.     {9 |, q: n+ d! _5 ]. f8 ~
  34.        if(i == 0) {r_num[i] = rand()%10;i++;}
    & v4 P1 ?( R. e, E' U" _! S
  35.        else
    ! \5 P3 d; e- \" E
  36.        {
    " d7 J! V9 W: b; Z: q9 T2 b( ]) S
  37.            temp1 = rand()%10;, H& r, |6 F) M8 k" W
  38.            for(j=0;j<i;j++)& J7 k$ w) H2 _( m6 @* \4 [9 o+ K
  39.            {
    0 `- r! N# J( S9 Q3 ~* Q, H
  40.                if(temp1 == r_num[j]) temp2++;      
    ( x. G" n& P' C* r% g( r/ y
  41.            }
    , Z/ z% E6 q4 ~9 Y8 w
  42.            if(temp2 == 0)
    3 f: o7 a  A/ `9 I2 q! y
  43.            {
    3 q9 i  y. k  P
  44.                r_num[i] = temp1;; ?9 i3 R4 }3 F* r& M/ [5 f9 R4 x
  45.                temp2 = 0;
    " Y6 w( U0 V& D, G, x
  46.                i ++;
      R! E+ `$ t- O/ f/ c
  47.            }4 J3 |; e, D- D( ]+ b$ d/ t6 w9 l0 m
  48.            else4 {& Z- {; c/ s! n2 D; U
  49.            {
    / W& r9 _; r  @9 d
  50.                temp2 = 0;+ d9 e, g' N* {# r
  51.                continue;
    ! `+ g, C- ^& f4 P3 E+ ~0 s9 C
  52.             }6 h9 U- p# ]0 c% Q
  53.        }   
    + k2 B$ \- G8 I
  54.     }/ e; Q$ I7 M1 j; p
  55.     for(i = 0;i<4;i++)& C" }2 L' B- c- i& {8 m
  56.     printf("%d\n",r_num[i]);
    5 z( w% V5 J9 D. |3 _/ Y( a
  57.     /************************猜数字游戏核心部分*********************/
    * ~% {: R" n: h
  58.     for(;;)( b3 k; F% r3 o7 N6 F6 B+ B" X- ?
  59.     {
    5 a+ J. v' _- t6 O" F9 _
  60.         scanf("%d",&j);; f( B2 k: o  \. ^5 Y, @2 ^
  61.         input_num[0] =  j/1000;
    2 A3 A2 i6 L; o- H1 k' V- E
  62.         input_num[3] =  j%10;* g3 a5 P( [8 q  Y3 m  M/ q; g
  63.         input_num[1] = (j - input_num[0]*1000)/100;3 K3 @, ?1 q7 A* T9 @
  64.         input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;, |, j& v  C$ `2 I
  65.         /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/  |+ e6 r( i9 x9 _6 `
  66.         if(judge(input_num,r_num)==1) break;' d/ c% Y/ f+ |: ]
  67.         else, O! Z. T/ m( r' f1 s5 M
  68.             continue;* h, I& B$ @' k& e
  69.     }
    " o  J5 R' r+ E! S7 R
  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