- 在线时间
- 490 小时
- 最后登录
- 2024-2-3
- 注册时间
- 2013-2-28
- 听众数
- 117
- 收听数
- 46
- 能力
- 268 分
- 体力
- 39235 点
- 威望
- 1340 点
- 阅读权限
- 255
- 积分
- 31237
- 相册
- 2
- 日志
- 0
- 记录
- 0
- 帖子
- 1388
- 主题
- 937
- 精华
- 0
- 分享
- 0
- 好友
- 111
升级   0% TA的每日心情 | 衰 2020-10-25 11:55 |
|---|
签到天数: 264 天 [LV.8]以坛为家I
- 自我介绍
- 内蒙古大学计算机学院
 群组: 2013年数学建模国赛备 |
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑 + g; I( K5 h0 W( h$ ], J0 V( e5 I
% |4 A+ G% }! F+ c) J上一篇:科普之-------随机数rand()的用法" ?& J, X/ b3 T* U0 T% N
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。# n# _* ~! B% i. O/ k( I# P
程序的流程是:+ g- D5 ]: ?6 Z! @% n
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
! H3 v1 s) D2 ^/ [5 L5 m% y2.要求用户输入四位数
n; ]: ^2 b6 {8 J8 P+ h6 S3.程序将用户输入的四位数分离,放在数组的四个元组中
# `! K5 z, J4 Q a4.将两个数组进行对比,记录对比结果& I X- _: ?- G$ A
5.输出结果5 y8 n- `" k. ?& d* F$ j" N
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>- S! u\" W& _3 \8 Z4 j
- #include<stdlib.h>
6 X9 b& F' S, U% V1 g\" ~8 S - #include<time.h>
0 b5 M; B/ `3 w5 B5 n }7 C - int judge(int *a,int *b)
& B8 c7 u/ H$ s\" D: Q$ n - {8 b# \- _$ u8 n$ R4 |# _: L
- int i,j;
: m) ?- [7 b( p) ? - int count_A,count_B;
9 w/ N8 H9 r% u6 g - count_A = count_B = 0;
1 d4 K! u% k V\" s9 o - for(i = 0;i<4 ;i++ )
$ F# g+ T5 L6 q, f3 y - {
B2 ]7 w5 m K! c. Z - if(a[i] == b[i]) count_A++;% V6 o\" R\" R, A! M; P; A3 Z
- }
* z# g0 @8 s$ s; \3 F, \ - - t1 ^* E1 w Z& L5 K
- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}6 x\" F& ^$ N% ~0 r. V8 {
- for(i = 0; i < 4;i ++)
/ g# U5 l\" f9 r - { / P+ }# w: t' U8 M0 g3 g
- for(j = 0;j < 4;j ++)
& B1 _7 ]0 N- B, X - {9 n4 t, X! p' A! M- k/ ^$ O
- if(a[j] == b[i]) {count_B++;j = 4;}
) c7 T, S) d# l! s$ ]4 A; Y - }) B$ n9 A* u7 @8 l* p3 J5 y
- }
2 l. a/ P% _5 Q \/ Z. F. ^( W - printf("%dA%dB\n",count_A,count_B);
5 I2 [\" M d3 I a4 l F3 U% W - return 0;) v: `; \9 u' k7 f# j
- }; s) U* a$ U2 b! X$ w# x
- void main()//c语言版猜数字游戏: o* \8 _- E3 L' s, Q
- { A) M1 N2 f* B) O7 ]$ Y
- int r_num[4];
) s! d5 A5 A# N - int input_num[4];; F\" ~. P$ a% e# l7 \' p# r
- srand(time(0));
$ `$ Z1 O7 j8 v, x - int j,i = 0,temp1,temp2 = 0;; f5 B7 J7 T\" [! f
- /*********************生成四个随机数***********************/
* u/ m: E8 p. B - while(i<4)
\" O0 }- Q) }; m3 r8 L4 p - {
' a) Y4 B: k) z! ] - if(i == 0) {r_num[i] = rand()%10;i++;}: H4 O& P! t9 E$ q h% h. h' n8 N
- else# B! u. [4 e `
- {
( Z' y3 d5 W) ?8 W' [ - temp1 = rand()%10;! p+ c5 u9 H& X* P) |
- for(j=0;j<i;j++)\" h$ ?% ?1 O7 m9 m+ }0 q
- {0 U2 d- _) C/ {4 ]1 X* T
- if(temp1 == r_num[j]) temp2++; $ m: N# n3 F. s0 i2 c6 P
- }
, q4 ` P7 M9 E, n - if(temp2 == 0)0 J5 h! l& T\" E, B- f+ j/ ]# k
- {6 E8 ^- F- }4 V
- r_num[i] = temp1;
2 Y! Q) R+ o* u0 g n - temp2 = 0;
; o, ]' N+ r1 `6 D+ D$ D - i ++;
8 f* K' d! v2 V6 N( [ - }
\" W( a, w( h% q z - else; g0 N s; X4 w5 E, c
- {5 F @$ W% h/ |. f8 H1 k
- temp2 = 0;
1 I1 j c7 O: P/ d% R3 B - continue;
6 i$ M0 k6 z' X; c% |* z+ h - }; Z2 y* I7 [4 H
- } 1 v2 Q T0 X0 M- m! r7 W
- }
! m) |% ?2 o9 L# ?4 q% o - for(i = 0;i<4;i++)! y4 j7 i2 v9 n3 x
- printf("%d\n",r_num[i]);
+ J. J- i4 q1 f\" b+ |8 @ - /************************猜数字游戏核心部分*********************/
( z, N% E2 A# E - for(;;)
T1 p7 q' {; Q! ]( D( { e - {
5 t- T- X+ C, H J; X' Q - scanf("%d",&j);% L3 D; Y& S. Q& z( E' c! s
- input_num[0] = j/1000;/ b\" p' v+ F3 e$ _' u+ Y; q
- input_num[3] = j%10;
5 u# Y5 x* T: c! U6 y! l - input_num[1] = (j - input_num[0]*1000)/100;
( U: o5 m- C* a. V s2 Y - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
( O3 w2 e+ D0 n. P( d2 T5 ] - /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
, e5 X* I R2 ? - if(judge(input_num,r_num)==1) break;0 @, m/ ~* n6 n# c
- else
5 |( }; \& h) L8 T# ]3 ]6 N - continue;; H* x: v+ j* ~4 C: `3 `9 F
- }. E K, R6 F7 p# M5 Q: \# s& K4 l
- }
复制代码 |
zan
|