- 在线时间
- 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 编辑
( e* M; ~7 Q; G( D& @, W) c L9 e8 J3 V* `
上一篇:科普之-------随机数rand()的用法2 J) B$ W4 l+ G$ \! a) Z
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
9 b; O) ~- M5 ]: U( T程序的流程是:/ w6 ^7 v. }" ^
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
9 f( R% X" W0 J; a) l2.要求用户输入四位数' `* z3 \) M7 r4 p
3.程序将用户输入的四位数分离,放在数组的四个元组中( c8 `2 x" h/ k- E& \6 c& H
4.将两个数组进行对比,记录对比结果5 b9 O( A3 V7 t$ B7 J/ q$ I( J
5.输出结果: ^7 D% j- C0 ?3 m
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>
0 b3 k7 q4 o$ |' R m5 ]8 Y - #include<stdlib.h>
7 T i& s, B0 q8 B' K\" [ - #include<time.h>
' p( a. p0 h1 ]$ U7 X - int judge(int *a,int *b)
* z7 M; J9 B, v' Q% j, W$ j - {! l\" C) f3 ^2 B, ]# _
- int i,j;
3 Z% a* z) u& D( `( y. Y - int count_A,count_B;! D3 S- I/ j, d
- count_A = count_B = 0;
) w' M( s! t1 [. n8 X - for(i = 0;i<4 ;i++ )* U9 h5 t# `1 A8 i# c0 c
- {
; t$ x4 S4 u# d0 R) |1 k - if(a[i] == b[i]) count_A++;9 l) T/ p$ g+ j& J$ P3 K
- }
( A! ]2 T2 t, l/ T4 v, y& D
- c( k( ~\" P; [9 s9 o; s& r1 a- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
1 l: M8 |8 A! Q- O8 B, i3 w9 v L - for(i = 0; i < 4;i ++)
# G% ^\" F9 q( z - { 2 K5 W# h4 v0 K! Q; a' @% M j
- for(j = 0;j < 4;j ++)
+ o\" z8 Z1 c4 ^& ^3 q- x - {) ]: }; J\" W\" u, ~$ C5 O; F- K! A# l; H
- if(a[j] == b[i]) {count_B++;j = 4;}
! l8 I. ~& o( z: ]0 q7 g0 ] - }
' J7 [8 L/ k( s S - }
4 R6 M( J9 b4 L2 N - printf("%dA%dB\n",count_A,count_B);. g4 \* d( q2 A+ Z; f4 p
- return 0;
5 J' g* V+ c; u, N: P - }+ G/ Z7 y8 J# b
- void main()//c语言版猜数字游戏
) X$ J* e0 O' X# \; N9 K5 P - {
\" T0 E/ u# n6 v0 T - int r_num[4];
. s) s' @0 X \/ {; q - int input_num[4];+ w2 _; D( X4 C: a9 o7 N
- srand(time(0));* Q; O8 j9 R\" G5 q
- int j,i = 0,temp1,temp2 = 0;
* p4 j+ i/ B a( q' J* W - /*********************生成四个随机数***********************/
7 G0 v; ]$ ?1 ^ U2 A - while(i<4)
( R# ^+ n, d4 {6 l - {% Q) m0 Z( e+ h9 a+ z6 L, e
- if(i == 0) {r_num[i] = rand()%10;i++;}
( R+ u% L2 Q) L0 X5 {) Z - else
; [6 b' W. E2 w0 v+ ^* X) q* K - {
) A1 U& j: N2 n* s+ t* P+ q! Y, i - temp1 = rand()%10;
0 ` C# {2 z3 z4 {, a$ @ - for(j=0;j<i;j++)
6 E- `4 p5 ~7 E) m2 d! i - {0 {\" ^4 e$ W& J% \6 B
- if(temp1 == r_num[j]) temp2++;
# L0 w b( E9 _: M. O3 y! w - }3 a- ^% n9 H+ \5 {8 @
- if(temp2 == 0)! g# F C7 C6 M$ a U
- {* ^, p9 R' N( \: D& \- Z. A2 B4 H
- r_num[i] = temp1;
3 S9 }9 ? P6 C! F) { - temp2 = 0;
* G; y7 X. M/ k2 c\" [ - i ++;
( s5 b3 |: ~5 B: g! M3 m - }
/ P5 T\" R0 S: z+ h- J% t( @+ _5 d- z6 T - else
8 h3 D3 t1 m/ _& e$ C - {
& F ]: M$ E% Q& I; r4 [8 K - temp2 = 0;; J: T. [& g( I+ V& y4 x$ e
- continue;6 n\" d; n0 k9 {$ I6 w. d
- }- N3 R2 ?! K: A* @( O9 C) M
- }
, {7 ?\" D P3 I# } - }/ {1 ~' `# d t
- for(i = 0;i<4;i++)
, n$ I& ^$ m6 d\" j: [5 o - printf("%d\n",r_num[i]);8 ~\" H9 ]; W4 r2 @5 i
- /************************猜数字游戏核心部分*********************/, L1 ~# k: a' w2 h\" H+ z, L- O% N
- for(;;)
h. E+ }\" c* R\" ~& z - {
3 a0 i\" i( t( t7 E - scanf("%d",&j);
5 V7 |( ~0 l\" h - input_num[0] = j/1000;
$ y _7 V\" R& o5 V M8 N6 H& Q: N G - input_num[3] = j%10;
. S: }9 W+ H6 m% Y/ g: } - input_num[1] = (j - input_num[0]*1000)/100;
9 \$ J. u0 t4 P: t\" Q+ \3 S! ^ - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;6 t/ Z4 L5 B8 L7 F
- /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/1 N9 K& y1 B# [ i$ Z- W! }
- if(judge(input_num,r_num)==1) break;) k( d- o) ~+ z. h; j5 ]. W3 n. t
- else4 ?+ A l& I: C1 F
- continue;
) y9 U2 e. y! Z - }
: k& y) j1 J3 F! S# J - }
复制代码 |
zan
|