- 在线时间
- 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" m7 X* y' k4 _. M# x7 ~' M
上一篇:科普之-------随机数rand()的用法
2 A3 r+ y# x7 m2 T! x- r w, o; J5 h上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。" q d; B* g0 V% l
程序的流程是:
1 L7 i$ B n0 X1.生成一个四位数要求每一位都不同,放在数组的四个元组中
: t5 n7 x9 l3 w2.要求用户输入四位数9 M$ K% j8 ?* Q; M7 G L
3.程序将用户输入的四位数分离,放在数组的四个元组中
- v) Z# k- h+ E3 J0 w* l8 o% {4.将两个数组进行对比,记录对比结果
$ Y1 a. z& J& m' w4 }+ U9 X9 p1 [5.输出结果! j$ R* R$ o- C7 }6 T- b3 l
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>
/ @9 A6 ]4 L( A. o. c: Z! T+ T - #include<stdlib.h>
9 ^\" }0 l. @4 g0 D3 t5 [- v5 D5 W - #include<time.h>4 F# h) N/ O& H, p* q
- int judge(int *a,int *b)
# a y I3 V8 l; `% i+ m3 D3 o - {
9 g( b5 I4 g4 d1 |) e7 w - int i,j;/ K% I/ y: J7 x: S% s, R& q# S
- int count_A,count_B;$ ?2 ~$ h$ V. b+ X
- count_A = count_B = 0;
9 e1 \7 R* t' K9 O8 a1 o1 } - for(i = 0;i<4 ;i++ )
H; k6 v! d: J7 G - {
' E; {# e( ]8 j+ [8 t% D! c, f# a - if(a[i] == b[i]) count_A++;
/ V S\" e& I5 e5 W - }
) N- P% y R P, J+ Z/ O# G; h! W - + y6 Y3 i: E0 _0 _6 ~# z4 x3 I
- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}9 l( e+ D. A( ?
- for(i = 0; i < 4;i ++)
4 |6 |% M. ?1 i. L u - {
* j; a% t: ]) s% n - for(j = 0;j < 4;j ++), k9 K' n3 h W- j
- {
; F2 ]6 a8 T' v# t0 m - if(a[j] == b[i]) {count_B++;j = 4;}8 Z. q# v5 G. _$ g1 y* ~8 E\" c$ w
- }
# d; A\" b1 W0 c! @ - }0 u- I! u- F* k% k/ V' v9 b! J\" n, @
- printf("%dA%dB\n",count_A,count_B);: ^$ Y$ ]; B% K! Z* _3 \
- return 0;9 E! U( K5 o3 [9 q
- }
$ @/ _0 z9 m( i* r+ W - void main()//c语言版猜数字游戏1 M- H& F6 r! U: b i2 P
- {
: E' C: F/ w! N* M7 S. k, n - int r_num[4];
. y) d7 y) f/ i( C* n& y - int input_num[4];3 b; F% N! i6 z) b# W* g
- srand(time(0));
h/ [* w- r* ~1 R/ V* D( T g - int j,i = 0,temp1,temp2 = 0;2 G7 w4 d9 d6 [( f- u4 W' ]
- /*********************生成四个随机数***********************// D# ?/ L6 f( Y# K
- while(i<4)
5 B( g' R7 J+ E2 p! p- c - {- V5 G. x, F5 u) u5 n$ M( R
- if(i == 0) {r_num[i] = rand()%10;i++;}/ Q2 O0 O\" ^/ y; q; e, S
- else
# o8 h0 R) k; a) c8 M* `7 S - {
9 U2 m1 g8 g. ^\" _: M% |5 t - temp1 = rand()%10;
# J9 m, A$ d3 _+ G! a - for(j=0;j<i;j++)
( ~$ Z o5 g I - {! Y2 }3 l! b6 p
- if(temp1 == r_num[j]) temp2++;
7 h1 a1 q2 b) v* T: O - }
( T- _/ I I0 ?5 Q9 e - if(temp2 == 0) n; [4 I% ]\" U# k* [6 |
- {\" `3 m' L. B; j' b/ h
- r_num[i] = temp1;
$ o* D: _; P* d\" M0 d) Y: N) [ - temp2 = 0;
8 K9 S/ d\" g4 Y* K( ? t% X - i ++;
- _6 t! I* f& n1 R7 [/ a - }! L A4 R' x; ~. t' ]9 e4 ~. \
- else% U+ s* g$ h' U8 N0 [. W
- {$ A0 z* C9 ]5 p1 W( n* d, r
- temp2 = 0;6 t4 d1 E F1 }( S+ q' T
- continue;
0 F2 H3 M8 S7 g w8 M - }
; V/ U' ?9 w+ D- b) n - } , t7 `. n6 }4 n- Y\" u5 ?
- }: V1 |. B4 C. j% J& W; c
- for(i = 0;i<4;i++)1 z, h- U' o: y! g$ e E
- printf("%d\n",r_num[i]);2 o9 j! R% O: [$ E3 d' h8 E7 y a
- /************************猜数字游戏核心部分*********************/% O+ F\" C5 E\" F) e
- for(;;)* \+ F' X& X M, R$ q/ c
- {
& c5 b6 c# T0 P' U; P - scanf("%d",&j);' w' v. S' V* [7 f
- input_num[0] = j/1000;! R4 i- M' D/ k* T j! P
- input_num[3] = j%10;: _. B- p9 j& C7 k) a% X# e* p! [
- input_num[1] = (j - input_num[0]*1000)/100;
( v [$ P9 E4 W J( h - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;, G; Y% H) V/ k3 g* x! Z
- /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
6 G\" x5 a: g) N/ m! x% d - if(judge(input_num,r_num)==1) break;% Z0 U4 W4 b3 ~! K1 h\" m$ T
- else
. J; J# H2 c2 P3 _ - continue;. U$ U8 ~; n& u+ B
- }
1 q' S: U' b1 q: L( m4 U( F0 D - }
复制代码 |
zan
|