- 在线时间
- 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 编辑
4 g0 d: l% a. m* W1 O
; d' v: g, v3 u; H9 Z) Q8 j上一篇:科普之-------随机数rand()的用法5 J/ {( a+ A8 D
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。; ^% n& i8 a! {+ C+ x: O$ d! y
程序的流程是:8 k* i/ n; ]5 B5 U8 ~, \ R
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
5 Q0 [" d; ~8 H! e# n/ [/ M2.要求用户输入四位数* P# p. B& b5 D
3.程序将用户输入的四位数分离,放在数组的四个元组中
; K. G5 S$ v: Z9 }7 y* t+ e1 \4.将两个数组进行对比,记录对比结果
( l( D( y: N5 z$ b3 c5.输出结果
' }1 h" E6 O. F; g9 G
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>
8 V4 i t. n @ Y - #include<stdlib.h>: z+ v$ G9 Z: ]! f7 p
- #include<time.h>\" U- y! m; V3 g' i4 J: T, x& F) a
- int judge(int *a,int *b)( O- j6 P1 i, _+ ]
- {
2 K! `! _+ c2 N - int i,j;9 C$ p3 R T\" e; _
- int count_A,count_B;6 R# [% w5 O, z6 h) Z& n
- count_A = count_B = 0;8 @2 g4 [% ^ ^7 F/ I. y* j
- for(i = 0;i<4 ;i++ )
5 [' y3 G- S& V- Q& u - {
5 d) h; C: Y3 m' |: K& G$ Q4 p8 ~) f - if(a[i] == b[i]) count_A++;
' j4 F2 m2 s9 t$ J6 V# Z; N - }
\" j8 W0 C7 [7 [0 j
. s% B! r# i9 ]. c+ {- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
# m\" g& j% i. ~3 ^ - for(i = 0; i < 4;i ++)
8 y: U6 n+ K' ?9 @4 L0 j - { * v( g2 v5 N- a* U! y
- for(j = 0;j < 4;j ++). d9 u* q' B7 i$ P
- {
7 c2 N' ?- g! E; M - if(a[j] == b[i]) {count_B++;j = 4;}
' l/ r; @, h! H! M\" j1 z6 O4 B - }
& r0 U9 F\" u. S - }. \# f5 d* {+ O$ i! \7 O
- printf("%dA%dB\n",count_A,count_B);
- W; G: ~ T7 b3 \1 C+ W c! X - return 0;* S5 s* Z% a3 ?% x0 M
- }( e# T9 u- n5 h8 z# }5 w7 B
- void main()//c语言版猜数字游戏
% z\" s3 k/ }# Y. U6 N. K4 {$ ^, a - {
7 O$ p4 F. C( j6 b - int r_num[4];, ?0 J& ^2 w- L; ?. g: v
- int input_num[4];9 A# C. x; i* T h) D7 ^; J\" q
- srand(time(0));
; n( E9 B' b+ d% I - int j,i = 0,temp1,temp2 = 0;1 c4 i$ h2 d+ R. u1 i. `' s2 K5 u
- /*********************生成四个随机数***********************/
' I3 J* X/ R8 ^0 K9 c4 L0 K9 c - while(i<4)
: R v% e* H6 ~- J - {& u3 g* b5 b: J3 [: I
- if(i == 0) {r_num[i] = rand()%10;i++;}; h+ w9 Z) P8 N A# {3 d
- else
6 `9 K0 K; l1 S% z - {2 Q0 T5 C; F1 f/ h
- temp1 = rand()%10;+ {4 j+ l9 T! `2 \! l2 C! s
- for(j=0;j<i;j++)- J) f$ v. O0 g3 {4 ]# }* S
- {3 }0 K6 a2 C: _' ^9 F
- if(temp1 == r_num[j]) temp2++; ! ~3 c\" [5 X7 U7 k& S( I& `9 J
- }: j. w2 z) w4 g. q4 {& w
- if(temp2 == 0)& N\" H. O( Z6 b
- {+ M# E2 b' `, Q5 b- S2 m
- r_num[i] = temp1;. M9 m, _7 z$ s
- temp2 = 0;
) @! h$ o. Z* ^) ~$ c) q ], ] - i ++;; X( z. q* m/ P6 z; t. H8 q
- }
( B. R' m6 O9 Y\" v, w. c7 c - else
2 |# l, x8 @: C. m4 h' t9 c& a - {
/ G$ U- q) E) \. K9 `% W8 V8 q, W - temp2 = 0;
/ Q7 l0 w) S* ]2 B8 G - continue;
0 u% {! |$ V, G7 W5 ^ - }
7 X) u3 H- _. B0 n\" ` - }
3 F9 \* G$ ?4 z9 h% p - }
6 j) D5 W3 b$ a5 b& ` - for(i = 0;i<4;i++); Z( g6 {; F$ N
- printf("%d\n",r_num[i]);6 q. F1 C* B0 D8 k8 u9 A
- /************************猜数字游戏核心部分*********************/
9 t( }\" o1 r4 X% Q( ` - for(;;)
' F9 A5 T- v# u# s8 e - {
, g' B: Z\" s: m4 V9 G0 q5 a2 M - scanf("%d",&j);9 V: ~9 N: B\" ?* ^2 _1 }7 k
- input_num[0] = j/1000;
# I6 E$ Q# F( i, J- a - input_num[3] = j%10;7 z8 ~8 A* t) w) [8 {' B* Z1 h
- input_num[1] = (j - input_num[0]*1000)/100;
7 R' G; u# D+ f - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
: n U2 `/ E6 ?2 k- Q - /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/2 L- H5 r( {, s, t4 m
- if(judge(input_num,r_num)==1) break;
$ \. V* m I5 F- v7 e; E - else
. ~; L/ N4 G( @ - continue;: R6 h7 C9 ]/ ]$ A2 @; l
- }# S0 O L2 ` T2 r. _- {/ ~- P1 R
- }
复制代码 |
zan
|