数学建模社区-数学中国

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

作者: wangzheng3056    时间: 2013-7-30 10:11
标题: 【连载】科普之---随机数的应用(猜数字游戏的实现)
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑
0 _$ ~; v0 B8 q  Z
- [" I& W+ I/ {# ]% p上一篇:科普之-------随机数rand()的用法
) O$ M3 |) A2 i8 F; Y$ ?# Q; R上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
& t- f3 B% o2 R' {8 ^程序的流程是:0 f0 q$ |- I1 I" p
1.生成一个四位数要求每一位都不同,放在数组的四个元组中# o2 N2 A+ C+ W! `! X# Y; j
2.要求用户输入四位数' O2 ]7 M2 ?" }
3.程序将用户输入的四位数分离,放在数组的四个元组中$ e) P2 y, Y; Q8 p2 x6 |# A
4.将两个数组进行对比,记录对比结果6 ~2 E( Z% ?# f( S% F% {: o
5.输出结果
* W, H( O: ~5 N! K. U& l 猜数字游戏的实现.c (1.69 KB, 下载次数: 0)
  1. #include<stdio.h>
    9 L6 p3 ~9 c! G0 Q
  2. #include<stdlib.h>
    $ B! @4 \$ f' U! y
  3. #include<time.h>* j# `- t' K3 C9 g, [- `
  4. int judge(int *a,int *b)
    ( v( z7 w1 W( }& Q# n+ B" @7 o
  5. {
    ; J& y8 ]. i$ \, M3 q
  6.     int i,j;* P' R; Q- F9 r" S# o$ x% F
  7.     int count_A,count_B;
    3 l# |  x+ A% \8 b0 |0 O
  8.     count_A = count_B = 0;
    # A% w) U* d4 A/ q! X2 J+ B9 ~
  9.     for(i = 0;i<4 ;i++ )
    - b* \5 F: f5 V) e6 U) K& R
  10.     { ) W7 f8 B7 n4 U3 y# \4 T
  11.         if(a[i] == b[i])  count_A++;; V1 M/ P+ j3 e( n
  12.     }
    8 J: B1 o5 f+ h
  13. % D( T7 Z( `& P' o" X" n
  14.     if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
    # b+ C8 ^" [# X
  15.     for(i = 0; i < 4;i ++)1 g# W* I: \4 w4 o- l# v' u
  16.     { 9 q% f2 D: H5 q. O" M9 f8 L
  17.         for(j = 0;j < 4;j ++)7 m# y5 m& E: N! X
  18.         {
    : J5 d6 a1 @& W6 p+ f- q) J
  19.              if(a[j] == b[i]) {count_B++;j = 4;}( }0 I, s, H* O
  20.          }$ F; G: g  t5 y6 k! b
  21.     }3 U% g+ X' I! O
  22.     printf("%dA%dB\n",count_A,count_B);' @# M- N6 y! S2 L
  23.     return 0;
    ! [0 V. n& q$ r" z9 H
  24. }
    7 V5 ?7 @! X3 c1 W& W  |
  25. void main()//c语言版猜数字游戏
    / v5 ^# \8 R; I8 @# |3 L; i) Z
  26. {
    % R* n) L# X- {+ E
  27.     int r_num[4];
    9 a! a( C# j9 H$ ^
  28.     int input_num[4];0 q4 j6 d" {* K
  29.     srand(time(0));
    + t* S6 K9 d" @8 E3 x* h
  30.     int j,i = 0,temp1,temp2 = 0;
    ! y0 g1 [, k" f( J" Y
  31.     /*********************生成四个随机数***********************/
    $ E* ^6 m$ ~3 t
  32.     while(i<4)% y6 V5 B, @2 i2 }
  33.     {
    8 A$ K- W! E' v( K
  34.        if(i == 0) {r_num[i] = rand()%10;i++;}7 k! S. E7 ?  l$ h. u8 E' G5 t
  35.        else1 G$ W1 V3 ]0 P4 R( U  _4 E
  36.        {6 S2 _9 H; [9 g$ l/ o
  37.            temp1 = rand()%10;
    ! I2 u/ k! m9 v
  38.            for(j=0;j<i;j++)
    0 J7 n' X/ B- M+ s. V9 D
  39.            {' _  W+ K+ V) B
  40.                if(temp1 == r_num[j]) temp2++;      
    7 O5 k% e" X  u" X2 r. v
  41.            }
    + G7 V; l" A  \) ]. S( F$ s. L5 a2 V
  42.            if(temp2 == 0)5 ]; |1 Q0 P. i# }5 p
  43.            {7 M/ z+ Z: N6 Z- H8 ~- [
  44.                r_num[i] = temp1;0 c! |0 n( a* E% w* c* M% j* \
  45.                temp2 = 0;4 f9 F& |8 |6 H) n
  46.                i ++;  h" ~- h/ O) c3 Z! L# Z$ S0 p1 L
  47.            }# o& G8 y) T* u  E
  48.            else$ g* E2 B6 O& N) i) J$ J
  49.            {. u8 L0 J: R+ Z# r, F' A6 h
  50.                temp2 = 0;
      t0 P- X* c* u, ?
  51.                continue;+ A  N0 g" _; G. I4 Y
  52.             }
    % Z  K4 K! ^7 I5 {5 d5 m& s& `5 G
  53.        }   
    , Y% X* L/ \. z  M7 u. @
  54.     }2 j* l- n  O, K
  55.     for(i = 0;i<4;i++)
    * J3 V1 k  S; v, d8 ^5 k1 b
  56.     printf("%d\n",r_num[i]);. N9 m; V  @) y6 {0 l
  57.     /************************猜数字游戏核心部分*********************/0 \) z8 A5 u0 o+ n, M/ M
  58.     for(;;)& l$ X9 ?4 f3 G* g6 E9 [# @
  59.     {8 @& a/ [# e6 y: S/ e9 l0 w/ l6 z
  60.         scanf("%d",&j);1 ~+ a1 C* D9 T- `# q
  61.         input_num[0] =  j/1000;
    + v! C/ {$ \5 T9 n9 u4 }7 t9 q% ?
  62.         input_num[3] =  j%10;; H5 @) a) ^/ J) G! e6 g$ g: G
  63.         input_num[1] = (j - input_num[0]*1000)/100;! r8 M0 p) ~" b# G2 R! n
  64.         input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
    6 B) h8 Y2 L) f$ m3 J  V2 r2 }
  65.         /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/, L- p+ b2 e: I
  66.         if(judge(input_num,r_num)==1) break;
    7 @. Y7 Z3 g2 T( x, E) O& L
  67.         else
    - A& ^( J. ~$ H: ]- @- c$ [  r
  68.             continue;; h: Z8 E  U0 ^7 N% h
  69.     }: @, m* a  d: e& f( Y; V) ?
  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