- 在线时间
- 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 编辑
9 W4 e! h# C L: j2 a, j: m; p# e
9 L3 y$ ]5 ]5 _7 ^8 J; J/ N- S上一篇:科普之-------随机数rand()的用法
4 n# v* _" Y2 B5 B8 n上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
& J, L/ r+ e" Q% X$ W+ M( |程序的流程是:( ]5 ]$ T7 ]& L8 x
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
# }/ Y+ G; V4 E$ \2.要求用户输入四位数- T. \) F! K0 O& y4 w
3.程序将用户输入的四位数分离,放在数组的四个元组中4 I, w. p$ R+ Z. M! M
4.将两个数组进行对比,记录对比结果
5 [4 \4 |2 X% S8 i5.输出结果/ m) g% m$ X: h
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>4 @, ^9 o$ q: l
- #include<stdlib.h>\" \# o3 j; Y+ V5 o. w
- #include<time.h>
+ [0 ?/ W/ E6 h4 w2 j; u1 K0 q - int judge(int *a,int *b)* g( C; i4 {- t0 `1 \5 B\" N
- {
' ]: a e5 o& j& {- m i# ~8 ^ - int i,j;
, Y1 f5 L! q\" ~$ K - int count_A,count_B;
( ^: o2 D) Q( l0 e3 d0 U - count_A = count_B = 0;
8 i- S4 B2 c% O# O1 }' p- t9 C - for(i = 0;i<4 ;i++ ). u\" W3 i7 A4 I
- {
5 [) b( x4 C- }4 V9 J - if(a[i] == b[i]) count_A++;
6 A& K( }! n4 m2 W - }( u$ }( v% n* v' `. d: @
- 5 ?/ j, a+ e W0 m
- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}\" @$ i2 R. ~ M( ^
- for(i = 0; i < 4;i ++)
5 ~6 Q E Q$ J, C6 W - {
2 N3 Z+ ?: s& V7 N - for(j = 0;j < 4;j ++)$ _2 j1 @. a* v/ d0 V
- {
4 ?9 ]# Z. z6 F, Z0 }$ g2 o - if(a[j] == b[i]) {count_B++;j = 4;}
) L o& S; e, P3 Q* x - }0 E& m! ^% o1 e, O
- }* y7 ^2 {\" Y# B! s5 k
- printf("%dA%dB\n",count_A,count_B);, s0 a; @+ F* u+ C! z4 K1 _\" ]
- return 0;$ ?4 Q\" G+ R9 k7 f6 x5 M+ f
- }
; ]. `$ ?8 q6 f. Z4 W+ A - void main()//c语言版猜数字游戏! I0 r: t: K0 G# M# b# F
- {( M! n* ]& }8 ~
- int r_num[4];
* ~) d) @2 A K( p) s - int input_num[4];
9 n! I! ^+ b& [2 F1 p, U - srand(time(0));+ x7 N; {4 ~) E) D' p. E
- int j,i = 0,temp1,temp2 = 0;
3 T0 E0 f' J2 a# B. o6 c- B U$ A! u - /*********************生成四个随机数***********************/5 |1 S0 L( b1 D
- while(i<4)
r( P* Z/ J* ^: p* w6 U2 ^# j - {
( D3 { G( r5 X' a; a3 R' I' | - if(i == 0) {r_num[i] = rand()%10;i++;}
) I6 G; i5 r. x/ O - else
7 G- B$ {2 m/ Q\" D/ ?* R' g3 i\" l$ ], }- f Q - {4 N- n4 e\" x* I\" P6 G
- temp1 = rand()%10;
( ~( R% E: l. _( l. q' i$ L - for(j=0;j<i;j++)% q) c\" A& \7 Z m: b\" x
- {) L/ m+ z- l! p0 E
- if(temp1 == r_num[j]) temp2++;
. e- v) ~6 h4 E8 M) J - }; {4 ^- L+ ?- b: L9 Y
- if(temp2 == 0)
9 m3 o! [- ?1 e\" P: P - {: L8 z6 d% X/ |/ v0 j
- r_num[i] = temp1;
7 @ @. h( H9 _7 @' d' C - temp2 = 0;, N( \, @( K, a, {2 @# n' ]: _
- i ++;
+ Q! }% W |: b3 T2 i - }+ e, x- R' d3 G
- else
6 R) A4 Z! Y% z# r C% R - {0 z( [; l. U. L
- temp2 = 0;
\" Q: e Z\" I: N - continue;
, K! I7 L+ y* d* }# C& [* T% Z% p - }& e3 c) E2 S7 ?; i; J- N
- } . r7 h9 M# G. N- G
- }
4 q3 L8 m8 B: ^ - for(i = 0;i<4;i++)6 w, j$ O7 {, w2 Q: M3 s
- printf("%d\n",r_num[i]);. b4 C* b; V9 C Z- d
- /************************猜数字游戏核心部分*********************/0 d2 n\" P4 W) M; I
- for(;;)
% L! I' W( A9 w\" a3 N x - {0 k0 t! ^9 k1 N+ c
- scanf("%d",&j);
3 j. \% F3 ?7 ] - input_num[0] = j/1000;
& X. E' U# J\" y3 U, m% e - input_num[3] = j%10;4 j: H3 T- H9 u8 h9 y6 C7 Q: m5 e. B
- input_num[1] = (j - input_num[0]*1000)/100;
0 y/ |+ A+ x\" D+ x9 P0 f\" [ - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;, u7 V. t c) G/ v: G
- /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/0 _- P' R$ u$ f; q5 o) }' e
- if(judge(input_num,r_num)==1) break;
4 Z. G& Z+ _8 { ~8 S7 g& t0 S - else/ C9 Q0 m; M2 e& d+ y
- continue;# g& U) C% o3 c3 j\" q
- }
, g4 {6 j. \/ f% E0 h7 S) p( y8 T - }
复制代码 |
zan
|