- 在线时间
- 491 小时
- 最后登录
- 2026-9-17
- 注册时间
- 2013-2-28
- 听众数
- 118
- 收听数
- 46
- 能力
- 268 分
- 体力
- 39229 点
- 威望
- 1340 点
- 阅读权限
- 255
- 积分
- 31234
- 相册
- 2
- 日志
- 0
- 记录
- 0
- 帖子
- 1389
- 主题
- 937
- 精华
- 0
- 分享
- 0
- 好友
- 111
升级   0% TA的每日心情 | 开心 2026-9-17 16:51 |
|---|
签到天数: 265 天 [LV.8]以坛为家I
- 自我介绍
- 内蒙古大学计算机学院
 群组: 2013年数学建模国赛备 |
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑
$ O5 l: h# J. X3 n& W j" x+ l$ R! U- _6 c
上一篇:科普之-------随机数rand()的用法! {( K4 C$ R8 F3 D3 t4 S: C( y
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。9 H$ D8 I! Q) g. R
程序的流程是:
5 t! @ C( s3 g9 Z: M6 s, `1.生成一个四位数要求每一位都不同,放在数组的四个元组中) \5 t) `5 C. y# ^% \6 d1 l
2.要求用户输入四位数
$ N7 x# s, K | O3.程序将用户输入的四位数分离,放在数组的四个元组中
8 M: r/ F' t, d; `& o5 F P4.将两个数组进行对比,记录对比结果
g' x( Z$ H4 t5.输出结果
. y2 }+ l \2 y5 c* o3 B, ?0 @; u" o- #include<stdio.h>
2 U! o4 {' Y( ?+ m\" I - #include<stdlib.h>$ W) G$ o* O. o, h4 U
- #include<time.h>
& {. [/ x% S- H: f5 l. M - int judge(int *a,int *b), Y' Z% ~ p; X+ c9 l
- {
! A' Y6 P, I. ` - int i,j;
1 t1 z6 P1 K1 a+ B - int count_A,count_B;
1 k( c' l1 @\" U( z& f\" v3 c! C - count_A = count_B = 0;
; ]# F# R! u8 W6 Y7 C - for(i = 0;i<4 ;i++ )$ f3 @# ^. z+ q+ K' b7 z\" f$ n
- { ) M. i4 Z8 {, V, z! `8 k
- if(a[i] == b[i]) count_A++; }; I9 h2 g( S$ r; g
- }
( q\" U! K6 `. x - 9 x# C2 P' K* T6 u! y
- if(count_A == 4) {printf(\"%dA%dB\\n\",count_A,count_B);return 1;}
6 Y: Y ~( W6 w+ _6 T - for(i = 0; i < 4;i ++)
# g. S! s; V, F - { 5 A l+ X5 q; x4 ?
- for(j = 0;j < 4;j ++)
% o2 ^5 q+ r }% n4 m( } - {
8 u+ I9 p8 u$ p& n% q* T - if(a[j] == b[i]) {count_B++;j = 4;}
' q2 }4 a1 U# \. J& K5 e - }# w. V# O, h3 J
- }- y+ o$ n/ e: n5 c2 L- k
- printf(\"%dA%dB\\n\",count_A,count_B);+ B4 g0 X* i, U6 S
- return 0;
4 [9 l7 W$ O7 P\" m! S2 }0 ` - }
2 [1 c! y. x& C: }6 u+ W+ T& ~ - void main()//c语言版猜数字游戏
! m9 h3 z\" h1 V5 w7 j- ~/ W. O - {
, P. Q6 n+ P0 J/ |4 t( N& ` - int r_num[4];
8 f2 j2 X. H1 i- ]1 Q9 {% d/ m - int input_num[4];, w3 s# X0 R$ ^6 T
- srand(time(0));7 D- M4 ?$ w/ n1 p4 v! h
- int j,i = 0,temp1,temp2 = 0;\" ~0 W6 H _$ W\" @9 o
- /*********************生成四个随机数***********************/9 _7 d# G+ a8 g4 M\" e' @
- while(i<4)( C: x6 |+ ^8 | i% c: L, H1 O
- {
* y3 ^7 \% c, B* L8 S# N8 f( a2 T5 l - if(i == 0) {r_num[i] = rand()%10;i++;}
4 n* H' K w8 l& R* ]) H3 Q8 h, R - else
! D9 O) S ^8 @4 @6 T - {
& p1 Y9 ~/ a% a1 V7 d+ ?3 k - temp1 = rand()%10;/ ?: d$ d5 e6 o
- for(j=0;j<i;j++)/ F/ i, {% ]' U) b' A
- {- i/ W2 H# j' [$ @% B
- if(temp1 == r_num[j]) temp2++; # V3 \5 s\" }8 E; i. z
- }
7 |! v4 I1 F% _+ {& b - if(temp2 == 0)
* @% \/ }/ k' x6 L& @! O. A - {\" J' _5 J4 j6 c
- r_num[i] = temp1;
- Z' E0 F E8 y/ O6 w! T - temp2 = 0;
0 E6 j, r& L t1 C% I - i ++;8 X/ ?! R9 L8 P; s' g) _+ d; }3 a
- }
/ y& Z( F5 M l& G - else
' [; t# Q# t6 n( r7 b9 P - {
: U, g& N9 a, v+ G - temp2 = 0;
) m\" O0 M) {\" ~4 @+ I - continue;
, P/ ~( F% p6 j) n# | - }. J& v' u6 o: B% P
- } ' |! f& Q$ V. s& c
- }3 ]\" N# V/ I\" \5 C( q2 K
- for(i = 0;i<4;i++)% J K# }3 m' g7 [
- printf(\"%d\\n\",r_num[i]);
+ J4 Q# I A. R l1 V - /************************猜数字游戏核心部分*********************/4 E$ B' e: Q/ o! r: R8 ]- O% ^$ v2 H
- for(;;)
& a' p$ c' `6 C- O' e. U# I6 K - {# C; @8 D0 U8 r4 B
- scanf(\"%d\",&j);; i$ G( F g9 h. Y6 ]4 [( M+ z
- input_num[0] = j/1000;
, Z8 f! Q* _& a1 H V1 [ - input_num[3] = j%10;
; O) u; d. w7 Y - input_num[1] = (j - input_num[0]*1000)/100;4 q2 n* ?, S5 c8 u5 ^9 T8 F
- input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
2 o, w1 P7 S% D. O\" k - /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/) |! k5 Z/ F* I# f+ `7 d1 A
- if(judge(input_num,r_num)==1) break;. G3 U8 ?( Q' B- Y L, t! B5 S
- else
( M; k+ h# P; P8 v! f - continue;$ X& \\" m, W& n4 G1 t
- }3 ?! O. l1 ^ l( w6 K
- }
复制代码 |
zan
|