- 在线时间
- 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 编辑 + z' Z! q" A- a& s: R
S% \1 {5 c' g. X# i$ B上一篇:科普之-------随机数rand()的用法
' L. S" @$ ~2 S) D/ y! D上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
: {. K! \% ?* X7 s程序的流程是:
% n1 Y0 h" V" [3 ]6 `' R$ A1.生成一个四位数要求每一位都不同,放在数组的四个元组中) H8 Q3 Z7 m6 R3 I3 r
2.要求用户输入四位数0 q( P' `1 Q( U! l
3.程序将用户输入的四位数分离,放在数组的四个元组中
. |$ h- [) V2 l2 ?, M4.将两个数组进行对比,记录对比结果6 K9 F4 c. l1 B5 M5 ?
5.输出结果
' u8 J- L* b- o6 V6 i
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>
! q$ U3 A* L0 _ - #include<stdlib.h>
6 ~4 E\" O/ y# D0 _' |& _& n - #include<time.h>
* [& H% v$ g; j5 s- w/ k - int judge(int *a,int *b)
6 y K- j9 D' ^, r L - {& ?! |! G+ U- ^; H3 g
- int i,j;; a, I. q\" F2 [( m, f2 l; ~
- int count_A,count_B;
5 ^6 |7 j) ]: n+ J* C - count_A = count_B = 0;
' d* A8 z3 E5 r/ d* t& s/ z$ @ - for(i = 0;i<4 ;i++ )
6 _9 r$ F: f) P0 L8 Q - {
* @% U3 C, H# ^9 c O - if(a[i] == b[i]) count_A++;\" i. O% }% {2 @
- }
3 h- d0 r, z2 q. g6 }
% c9 b9 \4 F1 j. U% j0 R- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
w7 Y. G! |3 X& C: h: ~; Y - for(i = 0; i < 4;i ++)6 c# p& n' g. W
- { ' k& O) G' E0 e
- for(j = 0;j < 4;j ++). k6 t; j4 F* J0 W O& I) E
- {
4 D\" y0 w7 }3 G( ? - if(a[j] == b[i]) {count_B++;j = 4;}
1 P% _% ~; ^. A0 a0 o4 b. b - }
, Q! W# X( R' \% ? - }
5 A& t( I. W# y0 b) ?6 O - printf("%dA%dB\n",count_A,count_B);0 _% z E7 h2 l/ n+ |2 W6 R! M
- return 0;2 W# j( }4 K. W; ]9 g, A+ q
- }1 G, J; v# Q4 }: L2 c5 ]. z8 x: p
- void main()//c语言版猜数字游戏
! L1 Z; U' e+ \7 S - {/ _* h1 w, n$ b& w* X: P
- int r_num[4];. c9 V$ Q+ S. l' D- ^; a O$ `
- int input_num[4];! f6 r( f0 e5 B- J6 l
- srand(time(0));
# T: ~4 s' V7 I9 c- ? d! Y - int j,i = 0,temp1,temp2 = 0;! |1 B: D8 w$ M: ]1 a4 q2 w- ~
- /*********************生成四个随机数***********************/8 j$ b' M0 G: P5 Q+ i
- while(i<4)
. |& O) u1 J: M4 V/ d - {2 J4 ?# M( }& E: Q% X
- if(i == 0) {r_num[i] = rand()%10;i++;}6 J5 O& z0 l; y |) g' W
- else
. R% C0 \; l1 P* ? - {
4 A9 F$ z, }/ h% n9 j9 k6 v. ^ - temp1 = rand()%10;% u w2 F7 b6 E% c( |
- for(j=0;j<i;j++)& k8 s- X9 I- c! ?! @0 o$ ?
- {# g/ L1 v8 B5 Z& O' i8 w3 w: \2 q
- if(temp1 == r_num[j]) temp2++; ; \- X7 @9 V, k. x& T5 T
- }2 v0 ^1 Q0 X- a\" O
- if(temp2 == 0)* _ |0 G0 o z3 G2 a
- {
0 ]. V& _1 i- t - r_num[i] = temp1;2 x* }; x7 }1 D\" Y1 L& A
- temp2 = 0;
4 Y# j& |5 |' d* J - i ++;. L* w- v1 x! A8 R$ f
- }
0 F. B; K d/ ~# t - else
, c; E7 ]0 I. n I; N4 h - {
3 W- u3 f+ {/ J# H5 | - temp2 = 0;
& h# ~3 N2 K: V% G1 F { - continue;
) l9 _6 {* G% b/ G5 M3 L - }6 a/ l8 {* z$ o$ B8 s
- }
\" ]+ S- k$ v) B+ p' p - }1 L I2 n5 d% f* ]; h8 D
- for(i = 0;i<4;i++)# O: d' f% w\" P
- printf("%d\n",r_num[i]);3 e4 F1 _8 P4 M\" O
- /************************猜数字游戏核心部分*********************/' m0 N3 L0 o( S# r\" V
- for(;;)
4 P0 Z% s\" i) `2 X0 T! Y; n - {
3 [: R\" W. x3 z2 O' O - scanf("%d",&j); i! u* b2 h: U& \) H
- input_num[0] = j/1000;
/ N- ] G; Q* U - input_num[3] = j%10;$ J2 r' H+ {( ^
- input_num[1] = (j - input_num[0]*1000)/100;
0 k9 S6 X4 R% ? b' m - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;5 {9 K( n4 _) W8 m
- /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/( t3 T# _( {6 `2 a4 d
- if(judge(input_num,r_num)==1) break;: [2 l/ C2 Q\" ]8 a' v: I
- else
c# A, n+ F2 ]8 P ^9 L - continue;
* p, `# i2 P% U+ g0 ]/ s\" I4 H$ Y) L2 C - }
# }4 m' J$ q0 s; d - }
复制代码 |
zan
|