QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2496|回复: 0
打印 上一主题 下一主题

【连载】科普之---随机数的应用(猜数字游戏的实现)

[复制链接]
字体大小: 正常 放大

937

主题

118

听众

3万

积分

升级  0%

  • TA的每日心情
    开心
    2026-9-17 16:51
  • 签到天数: 265 天

    [LV.8]以坛为家I

    自我介绍
    内蒙古大学计算机学院

    社区QQ达人 金点子奖 助人为乐奖 风雨历程奖

    群组: 2013年数学建模国赛备

    跳转到指定楼层
    #
    发表于 2013-7-30 15:31 |只看该作者 |正序浏览
    |招呼Ta 关注Ta
    本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑 & r( a1 t' l) |+ a7 q
    9 G8 B; c) H# K
    上一篇:科普之-------随机数rand()的用法
    ' c- P4 ?4 t4 p0 T) q上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
    ' S- {4 q! k5 c* D程序的流程是:% s3 z/ j# C" [' h. ^0 Z% \
    1.生成一个四位数要求每一位都不同,放在数组的四个元组中
    9 y. K/ x. Y1 v9 u. o9 o2.要求用户输入四位数
    & z9 J+ a; @0 }  L% {3 U! P3.程序将用户输入的四位数分离,放在数组的四个元组中
    9 k9 L3 `* |: m9 v. Y- v" A4.将两个数组进行对比,记录对比结果( t8 b; u' b5 X% W5 s2 Z
    5.输出结果
    $ @9 o+ e/ t( Y6 v
    1. #include<stdio.h>
      2 B) d. |\" b! b+ V, x7 ~! Z' o* ^3 f
    2. #include<stdlib.h>
      / e$ [' C$ d* }3 W2 Z* a
    3. #include<time.h>
      ! k& v& s2 U, x  p+ c+ M1 `
    4. int judge(int *a,int *b)
      9 o* z( i9 m7 i) r' X. e+ w
    5. {0 [. N* [/ P1 \5 W3 l: n
    6.     int i,j;
      . ^9 C) m/ P- ~4 |1 H, B( R  q
    7.     int count_A,count_B;
      / ~3 }# ~$ W! n# k7 ^
    8.     count_A = count_B = 0;
      / P1 g' R  c5 B& ~
    9.     for(i = 0;i<4 ;i++ )2 K+ J5 H! {! _
    10.     { - V8 O# K1 o  J) V) Q: S: E
    11.         if(a[i] == b[i])  count_A++;5 X\" R1 `, ]' A- t9 O
    12.     }/ v3 i' z+ X2 P4 I( s
    13. \" `3 X4 h! F, t6 D7 o' E2 K
    14.     if(count_A == 4) {printf(\"%dA%dB\\n\",count_A,count_B);return 1;}; ?* G, a6 C! p4 q0 Q% O
    15.     for(i = 0; i < 4;i ++)
      8 N* {% ]: \0 J7 `( I
    16.     {
      $ I; |* e% ^- w8 @) p
    17.         for(j = 0;j < 4;j ++)- b& p8 b8 R8 v* t\" _( s& @
    18.         {: ?5 H; `' b6 g
    19.              if(a[j] == b[i]) {count_B++;j = 4;}9 x, A5 W4 W. G\" v
    20.          }
      . @+ H! T* H\" q, j% I1 Z  J6 x. L- m1 T
    21.     }
      + `+ I# i$ r4 n
    22.     printf(\"%dA%dB\\n\",count_A,count_B);$ I' \3 p+ E4 i8 r% B, g# n0 K
    23.     return 0;
      + x+ _# D3 \% ?3 w; Q2 n3 u
    24. }
      9 f* U9 i1 V- r  L9 y* P8 y
    25. void main()//c语言版猜数字游戏
      8 ?4 ]. \8 u2 h. S
    26. {7 S  S3 E) m\" Z4 s3 `' ]
    27.     int r_num[4];
      , N; g) I$ ?! ^8 C( T
    28.     int input_num[4];; V9 P$ m2 h6 B3 k
    29.     srand(time(0));
      * P3 K( m1 l2 ?7 V2 i) U6 P0 p
    30.     int j,i = 0,temp1,temp2 = 0;
      , W$ S7 \6 d$ J+ [9 s
    31.     /*********************生成四个随机数***********************/
      ! }  M/ T& a- K$ p
    32.     while(i<4)4 c3 ~( u4 o1 A% X# S+ Q
    33.     {! C7 S2 c+ i: I: k! K
    34.        if(i == 0) {r_num[i] = rand()%10;i++;}
      9 ^  u! e& s) Q( F# u1 h
    35.        else! d1 x$ j% N9 |6 `- }; M
    36.        {
      6 K\" \; S/ \  R# Z, h
    37.            temp1 = rand()%10;
      % L! a/ `4 h0 u/ j6 v
    38.            for(j=0;j<i;j++)
      ) S  b, L. c& E, W& v# p$ c+ q2 s1 K
    39.            {7 y& `7 M3 |0 y2 v
    40.                if(temp1 == r_num[j]) temp2++;      
      % I4 X1 m\" `; q7 t! `) U- ?
    41.            }& l3 c' x  H* h+ J1 u# `: J
    42.            if(temp2 == 0)9 J4 w, p, [, J8 N; O\" }7 Y* |( I! m
    43.            {& e& w& S4 L$ @, _8 z$ R9 ~
    44.                r_num[i] = temp1;/ W2 K1 j) D8 c- x- x  b4 _$ c
    45.                temp2 = 0;1 Z# s* Y. y5 Y) u/ K
    46.                i ++;5 T- E$ x; s* L( G. V$ S8 S2 j
    47.            }7 T. g4 f. @7 R9 L- s* |
    48.            else
      6 v* T\" @( p4 M
    49.            {3 s7 |+ y8 Q\" @: l; b8 A\" m
    50.                temp2 = 0;4 ?- A' f$ p. H! ?+ P
    51.                continue;4 F8 [2 m( `\" v
    52.             }# A. A( F; H\" {
    53.        }   ! g+ ?, O\" P# }  p/ n
    54.     }6 Q- I3 ]! h- G\" `' n: l; E& @/ V
    55.     for(i = 0;i<4;i++)
      ! ^8 w* ^6 j! l- ?
    56.     printf(\"%d\\n\",r_num[i]);
      / f( t: |# G% `& _. a
    57.     /************************猜数字游戏核心部分*********************/
      ! V  N1 V9 P% k6 g
    58.     for(;;)
      ( Z5 h% P9 }/ b4 ]  U3 v
    59.     {4 }+ X* D\" L2 z2 D
    60.         scanf(\"%d\",&j);
      # @2 Y* F3 J, s
    61.         input_num[0] =  j/1000;7 G, X  A0 ?! h
    62.         input_num[3] =  j%10;5 o- t  \, N1 _1 G0 r, y! O% ]
    63.         input_num[1] = (j - input_num[0]*1000)/100;: Q3 |1 D: P! q1 S+ ]
    64.         input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;# j% i  Q4 E' E* l* l
    65.         /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
      * m2 W% W$ O$ a) Y+ V! c  z. R5 G
    66.         if(judge(input_num,r_num)==1) break;( e# _\" I4 h. h+ ?# r( h/ |6 r, K
    67.         else
      + l6 Y* g; d7 r  E. M& w- j7 T
    68.             continue;
      $ }; O& |- k4 L\" U# Y; ]  N6 ~2 _
    69.     }! t( f1 z) P/ T/ O7 E9 \
    70. }
    复制代码
    zan
    转播转播 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-10-17 03:01 , Processed in 0.288056 second(s), 57 queries .

    回顶部