- 在线时间
- 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 编辑
, j2 ]# P4 p0 M! g
+ ?; j; [7 c; Q% i, ^8 _2 `: x* C上一篇:科普之-------随机数rand()的用法+ i- R9 @7 M' @, J
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。5 G8 c/ ?$ F) Z6 w: X
程序的流程是:
6 W( Q( `7 o; h1.生成一个四位数要求每一位都不同,放在数组的四个元组中
& p X7 x2 h/ Y2.要求用户输入四位数
- U5 ?' h- _. P) p3.程序将用户输入的四位数分离,放在数组的四个元组中& e' z# s% N g2 s2 J% @
4.将两个数组进行对比,记录对比结果; S' @3 H& k- |3 b! S' k. i
5.输出结果
; B3 e$ z: e4 K5 z3 Z8 |
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>
0 t$ X8 E# n4 o* O/ K7 E - #include<stdlib.h>
& @( i/ ]) a, N, E1 }+ O - #include<time.h>
' j! p6 m2 V$ j/ i5 q& s - int judge(int *a,int *b)
( Y! y- j$ p! ^$ V* T - {
6 d; y! e2 J! @! f3 ` - int i,j;
/ \6 q3 G. n+ C. X5 \ - int count_A,count_B;
% ~/ l; k# }\" T* O: [0 m, \ W - count_A = count_B = 0;
8 U- e6 m' w, y) c! Z9 s; ? - for(i = 0;i<4 ;i++ )3 p/ U8 c7 ^7 _0 i( P# Z6 \
- { 1 J\" L\" D8 ~: Z$ l\" ]$ s* r( }
- if(a[i] == b[i]) count_A++;
! _' g+ ~% z+ J\" v - }+ U Z/ k3 C0 C( I, t4 i1 r9 b
w& D/ B' k' d6 M4 |' w; u' h! M- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}1 d1 q* Y& L/ [4 v
- for(i = 0; i < 4;i ++)
1 O7 T2 D1 t( c& e' i+ `3 \ - {
3 x+ P& P# E9 F, {/ n! q( p - for(j = 0;j < 4;j ++): l% J. t+ K( z
- {
& f\" o) k t7 Y- q - if(a[j] == b[i]) {count_B++;j = 4;}
8 ^/ r. A3 V; \/ j( f: C9 M& L/ P - }
% c4 Q; i6 p% I8 g H+ K4 B - }4 V\" Y, }) w/ J! {
- printf("%dA%dB\n",count_A,count_B);
& T. j5 y+ K& c( c5 s% ]+ g - return 0;- M: E& P4 v* I; D8 |; r3 m$ V
- }! c. _! Y/ b' Y
- void main()//c语言版猜数字游戏
) Y- I# N\" B& N4 S0 n - {! R9 l7 p; s+ |0 y: k
- int r_num[4];
/ l7 k/ O6 V\" n - int input_num[4];/ j2 \8 t5 `, e
- srand(time(0));/ P, c8 ~7 \8 O; P
- int j,i = 0,temp1,temp2 = 0;
7 t, k- I# j& C7 q7 o - /*********************生成四个随机数***********************/6 c: M8 S- D4 c; s8 L1 U) f
- while(i<4). w# e1 Z, E8 i$ m& i) t, v
- {
0 Q- ^\" t& Q# O) N) q9 m w* N - if(i == 0) {r_num[i] = rand()%10;i++;}1 q9 h; U8 w3 A! J6 q: O
- else) J6 Q0 j5 M& l/ q4 ~
- {
7 J\" v0 T9 Z) s( S - temp1 = rand()%10;
1 w- I& H7 `! |: k# { - for(j=0;j<i;j++)3 U+ y4 n( a! q5 b* ~2 A
- {
3 H2 K. A ]% k! U; \4 Y, Y, I - if(temp1 == r_num[j]) temp2++; 3 S\" D$ ^2 l6 g! E/ n
- }9 }\" a. b- F% e1 W
- if(temp2 == 0)& Z8 k: ]* W; M7 ?
- {
) _0 g$ D/ k' ?\" I) s- g& O' c* h3 | - r_num[i] = temp1;/ v H0 U0 X0 [0 w' ]: y# Y
- temp2 = 0;; f6 X8 J$ O8 Y% T) Q
- i ++;4 p* M\" m) z! w# Z
- }: z0 Y+ d) I; U. J
- else
3 l( c0 C# x) a5 F& Z\" q - {1 E\" O+ O, r* x# E3 D! j
- temp2 = 0;% g/ |, w1 Z* R2 e1 v5 [! M& [) y
- continue;
\" E' S1 U9 Z9 T- I\" I\" G - }9 Y6 j) O2 c5 v/ B
- }
_3 D* r( _9 e1 P+ D5 B - }
3 d/ r4 N5 I1 y6 p% N* g9 m; q - for(i = 0;i<4;i++)3 y: S, y1 E& j% L- t1 C6 V
- printf("%d\n",r_num[i]);
* ]8 n% M0 ^6 a - /************************猜数字游戏核心部分*********************/
{2 o8 f2 |' i\" `( U - for(;;) B& t2 J) ?5 w% ^/ W# }9 u
- {
3 P1 _$ n4 w) k6 ?+ H4 P9 b7 F - scanf("%d",&j);
+ A5 E& C6 _4 c% t/ W$ R - input_num[0] = j/1000;
7 k5 S6 ^/ F A! R5 I& G8 T: E - input_num[3] = j%10;
$ ]2 M6 f. s0 z+ A - input_num[1] = (j - input_num[0]*1000)/100;
. X) H' R2 Q+ z0 x\" g0 {7 C - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
T+ L8 u0 c: k- T+ C4 S6 Q - /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/% i X3 Y6 w# t) D+ }2 a8 a v: ^+ f
- if(judge(input_num,r_num)==1) break;
9 q. h# y2 x) Y1 O - else
! d9 Q+ P& w' j\" e( ]3 `; B6 J - continue;
( ]- j% B4 H6 o - }5 k ^) D+ K+ ` K9 X; Z
- }
复制代码 |
zan
|