- 在线时间
- 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 p" G# Y- T5 [+ R* H: h1 ]3 D# t3 q$ I! r
上一篇:科普之-------随机数rand()的用法$ b0 n* O7 a" _* V' n" K
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。4 \: m7 x2 ]- y5 S
程序的流程是:
. x h2 r) F6 N) V1.生成一个四位数要求每一位都不同,放在数组的四个元组中
+ n5 c2 }) z T7 v4 N; k3 o q2.要求用户输入四位数& l- t% n, ~: G! W0 T" Q
3.程序将用户输入的四位数分离,放在数组的四个元组中$ D5 ~# ]6 f; p" ^% E, e/ _3 w5 n: ?5 m& X
4.将两个数组进行对比,记录对比结果* D6 N- X! z" _8 o$ @, {/ h1 X
5.输出结果/ y! W! \" P/ h
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>2 i& J9 ~6 b. Y% |* H
- #include<stdlib.h>; W2 A2 B4 t& V) F O
- #include<time.h>
: P8 i+ f) J& ?' B H: T! Q - int judge(int *a,int *b)
; I% e, A6 w. m' N3 X! y - {+ j2 o1 r\" [& |; F
- int i,j;
0 D$ \) n3 w& \. B9 B( V9 Y - int count_A,count_B;, J( w6 j! K9 P! W5 Q+ Z7 U1 n
- count_A = count_B = 0;
! f+ z! `. O' z - for(i = 0;i<4 ;i++ )1 x% f/ t- d, \3 G1 l\" _
- { , N8 ~: |& i4 S2 h5 L- U8 h$ S
- if(a[i] == b[i]) count_A++;
( X# i' v, p' _' m: N. n - }! C5 Z7 Z2 V\" a
3 j2 n3 F6 H) h5 m% z- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}; j5 M7 ^* i' |1 f& p( W6 t) n' T
- for(i = 0; i < 4;i ++)
9 B0 ~0 w* h: E6 U. p - { 2 D/ a3 I* T- c2 b- U
- for(j = 0;j < 4;j ++)# U( @. Q1 S4 l9 d$ i( E+ L
- {$ [ ^; d' p0 b+ `
- if(a[j] == b[i]) {count_B++;j = 4;}- k/ c) @9 m. t+ X. I# i
- }$ o$ W3 H' C' x\" b- M( y1 p& Q
- }2 z$ }. A( j3 y) I. _9 J6 O0 }
- printf("%dA%dB\n",count_A,count_B);; [' B* z) U- q
- return 0;
\" f) L+ Y& i\" ~/ A - }
, a1 _ v\" D7 a: L\" Q. ~* H4 Y, p - void main()//c语言版猜数字游戏\" Z$ X. j2 z) |& K6 o& D6 d
- {
2 r. h1 j! K1 O- I2 T, {4 S0 n2 m% [ - int r_num[4];! i* Z& z' f4 i1 q- m Y3 x
- int input_num[4];\" w6 `& ^( }+ q3 |: J
- srand(time(0));
# a3 T3 Z: F0 b! f\" p8 ]; F - int j,i = 0,temp1,temp2 = 0; W$ |9 X: G6 [+ M- U
- /*********************生成四个随机数***********************/
8 ^' F! L# q% q - while(i<4)
. a: H; \, G2 ^# t5 H - {
4 m( W' D) u0 R3 B; S - if(i == 0) {r_num[i] = rand()%10;i++;}2 P$ y: _1 o% Z# X, \0 ]9 {
- else& _ R* T4 y* X2 @1 i
- {$ s3 y! ]# i) }! h& m
- temp1 = rand()%10;5 k2 b$ @ U1 J$ Y8 |* D. ?
- for(j=0;j<i;j++)( [ E\" o% r0 A1 h/ v0 h$ d
- {
4 _: T0 ^& N( W; O# N1 y5 U' m - if(temp1 == r_num[j]) temp2++; \" @# g7 n( J' k* R7 F9 o1 ?. B$ {
- }* w2 p9 D) S8 v! H6 R/ c
- if(temp2 == 0)* w- _\" k, i( W' E( H& ~
- {
# J7 _# ~. V0 Y( Y - r_num[i] = temp1;' P/ Z6 T( }! |\" Z0 C, j
- temp2 = 0;+ N( M/ s$ Q3 y4 j
- i ++;6 u\" p+ x/ s. v
- }
o* n- g5 ]4 L) ? - else
( G$ N- [6 y6 a0 o- j3 ~ - {
* F7 g) c- n4 G% m1 n\" f - temp2 = 0;
, d- t3 T6 ~& G# P1 Y5 g - continue;
2 P4 f; n' z* t8 \- p - }
5 ]4 |# W$ b3 ?* m - }
2 m: t+ X# o2 `8 E - }
) {: |- w+ K+ R - for(i = 0;i<4;i++)
+ Y3 Z7 z0 k x - printf("%d\n",r_num[i]);' c4 A6 e, z; T# l
- /************************猜数字游戏核心部分*********************/
; C4 f2 T$ c) `0 s# ^0 L4 B% E3 i - for(;;)
( d i; k/ s- Y, r u - {
* R1 u\" x; B3 d! t: o o g - scanf("%d",&j);; _( o$ J( V* V\" \, H: Q
- input_num[0] = j/1000;
/ m- x0 _: y; Y$ d9 ^& o0 e( p - input_num[3] = j%10;
9 `9 s# f: ]9 l+ i9 h7 @! t - input_num[1] = (j - input_num[0]*1000)/100;
3 v\" a! i- D& m, b - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
; m3 L k- g5 t O' T - /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/9 s, |. U9 I* m! d2 D) k
- if(judge(input_num,r_num)==1) break;
) U5 ?* E. t! b6 C( f4 } - else, f: o& O. s; g- s$ ^\" A; k1 N) Q
- continue;4 P. X) `# a9 g# E: `* _* [
- }
& R\" U# D6 B+ T/ t6 r - }
复制代码 |
zan
|