数学建模社区-数学中国

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

作者: wangzheng3056    时间: 2013-7-30 10:11
标题: 【连载】科普之---随机数的应用(猜数字游戏的实现)
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑 ( e4 W5 G: f3 ~2 I# l  t9 e
1 [) `0 T: x! c$ Y, {/ G6 k
上一篇:科普之-------随机数rand()的用法& c: w/ O1 O, b$ I/ X7 ]+ u
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
0 X; {9 ^1 j5 g( S1 y8 S程序的流程是:
8 U4 |+ B1 o, ]# w2 N: l1.生成一个四位数要求每一位都不同,放在数组的四个元组中1 m, g7 A6 N' l3 i9 {2 m
2.要求用户输入四位数" l7 C/ U/ M  O
3.程序将用户输入的四位数分离,放在数组的四个元组中( Y! ]! w# L5 v- K! ~
4.将两个数组进行对比,记录对比结果
5 ~( |! Z' [* @/ D; o) h* e5.输出结果
( X& M! w# L. r8 k 猜数字游戏的实现.c (1.69 KB, 下载次数: 0)
  1. #include<stdio.h>: v* Y: s5 P4 ]! V6 y
  2. #include<stdlib.h>0 k( z- ^" L6 ^, H3 w
  3. #include<time.h>
    % V) C7 g; Z7 R4 l- N9 z
  4. int judge(int *a,int *b)
    / G* i7 i* a1 Z! {8 |& R: d# b
  5. {9 T- a" P, D! u
  6.     int i,j;
    / y' }7 H. r' s4 o
  7.     int count_A,count_B;# A7 H! U* U& n( i5 ?
  8.     count_A = count_B = 0;
    ) ]' M0 @) H$ E$ A
  9.     for(i = 0;i<4 ;i++ )6 x" {# ~/ _6 a% X* z
  10.     {
    3 J7 a$ J4 F; l: I/ {
  11.         if(a[i] == b[i])  count_A++;: F, f" E; l& e8 C: ?
  12.     }
    . X" }! u) u& W2 s

  13. 9 \  `% h/ b+ J% n# p
  14.     if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
    % M. m+ P6 U5 N; r
  15.     for(i = 0; i < 4;i ++)4 C9 \& k, n# G
  16.     { ' q2 r' i$ x2 l" i- t( g
  17.         for(j = 0;j < 4;j ++)
    0 r$ V) b1 r6 e) t5 T0 e0 k/ @4 T% P
  18.         {; k% r  U" M" {
  19.              if(a[j] == b[i]) {count_B++;j = 4;}
    3 H/ \4 w2 l' G3 W% E
  20.          }) r- V( f+ ~( s' B( P' H
  21.     }
    0 G& e) P: E/ O5 {
  22.     printf("%dA%dB\n",count_A,count_B);
    . R& v8 R& C2 F1 Q; S7 u5 P# a) o
  23.     return 0;
    ! O2 P/ g+ k4 Z) c/ c! j6 M* [
  24. }
    6 C/ n. p5 V: ?" C0 n
  25. void main()//c语言版猜数字游戏
    2 x7 q5 q( H% w' E  Q' K8 _" V
  26. {# z$ P" [  ?2 d' z% M
  27.     int r_num[4];. r  N0 N2 J6 e* z7 G/ p4 y. @0 U; s
  28.     int input_num[4];
    4 a% |1 A- ^/ _8 J+ M. t
  29.     srand(time(0));1 j) O0 g, o/ S; O. `8 V$ l
  30.     int j,i = 0,temp1,temp2 = 0;& \4 p4 ^! [8 z1 d
  31.     /*********************生成四个随机数***********************/
    " k1 u, K* {, _. e) I
  32.     while(i<4), l& M  w8 s* _; i9 U7 p0 O
  33.     {
    # T* g% F) Z0 i- B) E; b: U
  34.        if(i == 0) {r_num[i] = rand()%10;i++;}
    9 A7 H& ~' _# S2 Z, r
  35.        else
    0 P1 |( o! F3 A: l: D5 k" ^; k: j
  36.        {
    - X; k) }  ^- g3 X0 V  K* Q) g
  37.            temp1 = rand()%10;
    - @% O6 L0 Y6 J/ |
  38.            for(j=0;j<i;j++)
    ; s( F3 e5 \" [3 F: X9 ]6 G
  39.            {
    % r2 @4 W" F% Q: n/ C) P* I
  40.                if(temp1 == r_num[j]) temp2++;      
    - n! {: h# k, R* Q/ d+ I
  41.            }
    ( ~( Q) g% ?/ A; ^8 N
  42.            if(temp2 == 0); J. Q; j8 M' }# k8 s$ ]& ]
  43.            {
    + |" s! x8 F/ D2 A- P  ?
  44.                r_num[i] = temp1;8 z5 \/ }( n* y) t2 x
  45.                temp2 = 0;# ~8 G4 e/ R' q; ?) a) h
  46.                i ++;8 g# O2 t: r; [+ ?; \7 O# `: C
  47.            }
    9 Q7 A# C# r3 n) {
  48.            else8 T; r7 S/ m- V4 H
  49.            {9 |- C) s8 E5 F; O
  50.                temp2 = 0;' g5 Q! \+ _9 }* I* B5 i2 g
  51.                continue;8 D, |( v/ [% a
  52.             }& l! d3 B! g2 j* h, s5 t
  53.        }   
    4 ^9 V2 y# D# P! k) v
  54.     }
    8 i% N: _3 j& i
  55.     for(i = 0;i<4;i++)1 n1 d# l3 L: K, o! n8 `  f/ [
  56.     printf("%d\n",r_num[i]);
    * ^- ?; g5 ^! S8 c
  57.     /************************猜数字游戏核心部分*********************/: Z1 C# L7 M7 A5 o/ J* C5 w( w
  58.     for(;;)) K9 q* n' _  `! F/ `& J
  59.     {! Y9 ?* I: \1 n/ E2 j( A
  60.         scanf("%d",&j);
      n6 j$ H4 [8 b9 ~
  61.         input_num[0] =  j/1000;
    % V0 Z! B- Y2 x0 V& p5 r! w
  62.         input_num[3] =  j%10;4 @" w9 V" _% x9 h
  63.         input_num[1] = (j - input_num[0]*1000)/100;
    9 \* @% L5 A9 y6 K$ ?) B6 C
  64.         input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
    ; L& E" P( a1 U0 o! e
  65.         /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/- p, t* V2 H; k* x3 c$ B6 X
  66.         if(judge(input_num,r_num)==1) break;+ T% f# b) @8 M, }7 R+ P
  67.         else9 v# C4 s5 R" j1 ^1 k/ f/ Z4 {9 H
  68.             continue;4 \" X/ S7 k5 P
  69.     }3 e! ~1 X) {9 X+ t
  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