- 在线时间
- 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 编辑
+ t6 o" P' t9 N+ B. F9 Y# k- M9 @- F7 Y% D" |
上一篇:科普之-------随机数rand()的用法) W* O" f) e* T5 l" h& z3 R
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。 j% I7 u# W+ F0 B/ X% n
程序的流程是: Q2 O. R6 F6 m3 m# J$ c. U# B( ]) n
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
+ W7 R! |# n; U2.要求用户输入四位数 ^1 D0 s: |! ~# S1 |3 V
3.程序将用户输入的四位数分离,放在数组的四个元组中
/ T; K5 N$ G, t- ~4.将两个数组进行对比,记录对比结果3 b7 Y% }; G2 G1 X7 ^$ h
5.输出结果9 x- ^$ F" E9 N8 ~; ~
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>
# Y0 B2 C/ @5 _& q0 @8 } - #include<stdlib.h>9 i/ Z$ b\" B' }2 P; V3 F1 D/ o
- #include<time.h>
- {) j0 Z! U' y - int judge(int *a,int *b)1 J( W( \/ s' I( ~
- {
1 u2 S: d9 I\" N6 [0 p - int i,j;# b' T# c0 n2 t\" R
- int count_A,count_B;$ \5 g$ s& S1 m* R
- count_A = count_B = 0;! N$ a7 s# s. g( }9 y! H- F8 q9 o
- for(i = 0;i<4 ;i++ )6 I+ q% c# l1 T/ v\" ]& P- R3 J
- {
9 a r! |$ Z; ~: v6 d/ J - if(a[i] == b[i]) count_A++;
) Q% {4 X: ~3 v( @& Y% y1 U - }5 @\" L\" S- K9 c; M
- 8 v1 U# D$ `% D
- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}# [3 O9 z. x7 y
- for(i = 0; i < 4;i ++)
% b3 U1 f3 w( Q+ B - {
. X' ]5 Q' b- t- {1 e2 i( i: b - for(j = 0;j < 4;j ++)
9 y6 |: n& A: L, a1 w) l' b+ G0 w - { x8 K' X( o' B; O; k& v4 d5 w5 y4 y
- if(a[j] == b[i]) {count_B++;j = 4;}/ J% `3 H3 \# d# u6 q
- }7 z' {* L7 Y* f7 b$ b$ ~
- }
! K: k: s' `' i0 a( [$ A! A( t5 b - printf("%dA%dB\n",count_A,count_B);8 S$ c) x! O! D7 J7 Y
- return 0;/ O- v& d) `& L( v U
- }$ g) C9 S/ P, a8 w1 B
- void main()//c语言版猜数字游戏* h% A- ]0 j: E+ M1 |2 m1 S9 |! p) x( ^
- {, L+ A* e0 Z% }' O
- int r_num[4]; T+ Q1 }* j) x9 n: g
- int input_num[4];$ f, |' ?1 o; P* \) ?: N
- srand(time(0));
& g7 z! v% K! k/ Q9 |+ D y5 I - int j,i = 0,temp1,temp2 = 0;
: Y9 ?. d8 Z' P, P( B4 ` - /*********************生成四个随机数***********************/
4 `* T( D& t* E/ ^, J$ n - while(i<4)1 ?% Z% c4 S* C+ ]. c: I8 |
- {% ~9 C% Q6 ~) K, \( n# R2 } B, o
- if(i == 0) {r_num[i] = rand()%10;i++;} H# {, r( h# ~
- else5 o* o, F- i/ x8 [3 e
- {
' w- l6 n0 X* x8 z - temp1 = rand()%10;
, W- U1 \0 X3 ?+ ?( ]* T2 R9 |- ] - for(j=0;j<i;j++)
* |' C7 m3 S9 e/ G - {/ R5 Y3 G. i' |
- if(temp1 == r_num[j]) temp2++;
! P) a- p/ ]. t; x - }
5 s2 i: z6 Y8 T% c7 C. c - if(temp2 == 0)\" h4 V N0 W9 D. Z\" }& C
- {- x; |+ C9 p* E
- r_num[i] = temp1;
! R' h b' E- F5 Z - temp2 = 0;
1 E& U& d5 X: U3 h6 e3 x - i ++;
) u5 S8 J7 y# p\" t1 I$ G - }
. u: A% M$ ]; a* ?/ n; q4 i# K - else0 [. L7 }2 W5 a9 I! K8 ^6 c
- {
1 A\" U2 A$ |' A) |7 |. n1 V c, F! ` - temp2 = 0;+ m% c9 T, J+ ]4 P, `
- continue;+ H# C: y* j8 `2 ^3 t) A
- }$ p2 Q3 J, n! j1 n( x
- }
5 v4 Q. e\" @. t, C% J) a: K6 q8 T. x - }; ~ Q3 _/ N. i) d. s u4 \+ ]
- for(i = 0;i<4;i++)7 h& a\" H) h; m3 V\" `
- printf("%d\n",r_num[i]);/ Y+ m b- L3 k' S3 w% y
- /************************猜数字游戏核心部分*********************/
! V, H8 Y V! P& L - for(;;)
+ K1 o1 X3 w* O% c. E1 D\" T - {
+ n; }! Y) r( d: ? - scanf("%d",&j);
8 n0 K; \\" F d* n1 X* ~! `: |) M - input_num[0] = j/1000;
, t/ O* U, M9 _/ j! Z. M9 {* w - input_num[3] = j%10;- v) c5 ^: @% x# g9 r\" x
- input_num[1] = (j - input_num[0]*1000)/100;
1 s ^6 G7 R2 F\" K( o - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
5 @% ]! y @6 r5 I7 M4 D( Y - /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/9 Q4 Y* K0 k6 J ?7 H. A: L
- if(judge(input_num,r_num)==1) break;+ C& ~9 y5 l! N) ]3 w
- else
% W% n\" s1 l1 _$ w8 i9 O - continue;5 m) m) a6 }$ s2 B2 C( ?
- }
9 o2 T) e/ v& d6 B - }
复制代码 |
zan
|