- 在线时间
- 491 小时
- 最后登录
- 2026-9-17
- 注册时间
- 2013-2-28
- 听众数
- 118
- 收听数
- 46
- 能力
- 268 分
- 体力
- 39229 点
- 威望
- 1340 点
- 阅读权限
- 255
- 积分
- 31234
- 相册
- 2
- 日志
- 0
- 记录
- 0
- 帖子
- 1389
- 主题
- 937
- 精华
- 0
- 分享
- 0
- 好友
- 111
升级   0% TA的每日心情 | 开心 2026-9-17 16:51 |
|---|
签到天数: 265 天 [LV.8]以坛为家I
- 自我介绍
- 内蒙古大学计算机学院
 群组: 2013年数学建模国赛备 |
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑 * \" {6 ?! I! b* ^/ u" v) _; Y, F
2 J! w( `8 b% w: c4 s a
上一篇:科普之-------随机数rand()的用法 J) f+ Q Y* j; r1 A! |1 E$ `
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
. a+ h* \8 `- N' p0 ~程序的流程是:
, S' Q/ y* l6 O. F( j% [+ k. Q* `1.生成一个四位数要求每一位都不同,放在数组的四个元组中! W$ n" W0 Z5 g
2.要求用户输入四位数4 q; q; ~; Y4 S W9 z, v6 [) |
3.程序将用户输入的四位数分离,放在数组的四个元组中2 M6 M' R# a. }4 t
4.将两个数组进行对比,记录对比结果
# R. F- L1 G) l @4 Q& Q1 p1 V5.输出结果7 c2 _3 c* B/ p; B
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>
- v$ D( E+ V7 O, U: g - #include<stdlib.h>, \7 g0 d/ w' E% Q* L; ^
- #include<time.h>3 u( L4 d* T: |1 w) G C\" t3 f: U\" Z. G
- int judge(int *a,int *b)* D9 W6 U% o1 ?5 B5 Q* |
- {
* a7 q8 i# o) T' O+ P, X$ b5 J; m! }8 r - int i,j;
* M, P% `! J7 e8 R7 O l! n - int count_A,count_B;
$ V' i( c5 y% I' F& K: B. K - count_A = count_B = 0;- B) V) m; [* y
- for(i = 0;i<4 ;i++ )
% D \6 D9 C. W1 z5 R4 F - {
1 k! S) c4 W! \ - if(a[i] == b[i]) count_A++;5 I% V, J$ o! C( K
- }
- u/ ?( X. |! v* F1 u% G
3 N- w# l% `4 L- |1 Z, u! Z- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}4 y' Y3 T4 e! j\" N% r6 W
- for(i = 0; i < 4;i ++)
\" g( q\" F% s: A2 T/ c6 }& Z& N - {
' `4 {4 \; |' u+ P+ n - for(j = 0;j < 4;j ++)0 u) P# ?2 z5 g! q
- {6 w, E$ y0 c* @ O- X
- if(a[j] == b[i]) {count_B++;j = 4;}2 v: z: X0 L; l/ _9 A9 }1 {+ V
- }, F6 v: s: t/ l5 n$ a
- }
3 @8 k- ~: O% o/ p3 }# W' n - printf("%dA%dB\n",count_A,count_B);6 s: x. N2 ^2 F4 ^\" ]9 l' P7 W8 b
- return 0;
% F |+ C3 X! ^! B; q - }
5 q B8 D( d+ r - void main()//c语言版猜数字游戏
% t% J9 b7 ~% m# Q9 K# }1 L0 l P - {
2 b0 M) A' }# m0 a! m' z+ E- B - int r_num[4];
0 ]4 F9 E- J o5 j) S\" C. S - int input_num[4];5 Z# u9 E9 l; n( M1 C- d N1 q
- srand(time(0));
' ^& D\" K; s\" Z5 ^6 f - int j,i = 0,temp1,temp2 = 0;3 T4 {$ a! H. e' p% }6 _, J: L. p9 F
- /*********************生成四个随机数***********************/
# _! S1 E9 \$ ~. u+ Z2 c8 ] - while(i<4)
J3 X7 `! j. O - {9 z+ k$ K x\" [8 F) Q# P
- if(i == 0) {r_num[i] = rand()%10;i++;}
! Y\" N- T4 i) [6 ^4 b4 O - else; [/ }/ `, m) i
- {
2 u7 @: R7 {3 d4 e: K - temp1 = rand()%10;
6 S# L4 V! F& u& v\" L, L5 y\" B - for(j=0;j<i;j++)% @. |/ h0 O+ {# O
- {0 m! s/ a3 |0 m& k; m, Q
- if(temp1 == r_num[j]) temp2++;
0 P0 T9 y% j$ ]) b+ d9 Q1 V( s - }! G1 |1 f# V8 T V; H3 v
- if(temp2 == 0)! V% Z4 u0 U! m; Q! M( r) p2 W
- {
& h\" P. R- F( `- f, `6 b - r_num[i] = temp1;
& p) [. D2 z: O/ H3 W* u7 ? - temp2 = 0;
) V* C! r& I3 k: P0 [& c - i ++;0 I7 |2 y1 @; O. } G
- }* S% a. q& a; S) \
- else
6 @' n) b$ U$ ?& E3 \6 o0 P: q, \ - {$ T0 f q, g. h4 C3 B
- temp2 = 0; J# M2 j6 @& L5 n+ N5 [$ c
- continue;: y; r5 t$ w \+ e. ?3 F' l
- }
7 U0 X* S) |- e# A, p7 P - } & W6 g: T: a p8 N
- }
\" g, U. f9 X( k& e) K - for(i = 0;i<4;i++)) k& X( a! v; O5 Q( e8 M7 g
- printf("%d\n",r_num[i]);; N: L0 ^9 T, I. p& F4 W
- /************************猜数字游戏核心部分*********************/
) j0 Q: G& K2 p% f - for(;;)' `+ o9 s/ P- m# u9 @3 L/ I
- {, z& P/ z$ d\" [; e$ z# i
- scanf("%d",&j);\" `5 v\" m8 \9 Y% R
- input_num[0] = j/1000;( J3 r5 W t$ i, t7 G6 y ?+ _
- input_num[3] = j%10;: G# J0 t\" S# Y: m. n; Q
- input_num[1] = (j - input_num[0]*1000)/100;
. E+ J! H$ ?& K# e2 E - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;* l* Q) o6 @0 k8 g
- /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/( U5 y! N, u4 I$ @2 h6 s: j/ F5 R
- if(judge(input_num,r_num)==1) break;' c; G2 r0 N9 @! _/ z3 X
- else Y: R* g4 g, d1 z' I+ G
- continue;
2 S8 l' e0 L# S9 d2 ~ - }
% r* M0 c: A5 q) [% X0 @! Y1 Q1 { - }
复制代码 |
zan
|