- 在线时间
- 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 编辑 & ]. x1 ~+ V4 j' [. m3 n3 \
# W6 ?! f) L4 X, N5 g8 j: X( B0 n
上一篇:科普之-------随机数rand()的用法
6 j4 S; s% q& G4 T上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
/ U, u6 D0 @0 c5 k程序的流程是:
o! M9 V- ^( E6 m4 e0 r2 M1.生成一个四位数要求每一位都不同,放在数组的四个元组中
2 {$ T' a" h1 d% C2.要求用户输入四位数( O: H' U2 w6 f R
3.程序将用户输入的四位数分离,放在数组的四个元组中& w6 b5 J; |/ H; Q$ S# Z' G
4.将两个数组进行对比,记录对比结果
! d8 U4 S) i9 ]7 X, r* @. i5.输出结果" K" h- z4 m* r) U" W
- #include<stdio.h>! n( P$ j/ a, D
- #include<stdlib.h>
' H) z3 K# J+ ~\" s& P9 B. o - #include<time.h>
6 I% h4 q8 j! N/ g [) C - int judge(int *a,int *b)$ T3 ?# l- @$ B\" Q& ?$ S. I; \- V( T
- {
9 y, L$ l6 Y q - int i,j;
9 `, K6 V2 P' f - int count_A,count_B;) J8 k& G5 z9 V7 t
- count_A = count_B = 0;7 s/ T* N) C* z# `
- for(i = 0;i<4 ;i++ )- y/ Q+ w' [% l/ N\" O v
- {
6 @ X( r: ?% t& ?6 t3 D* L - if(a[i] == b[i]) count_A++; v2 ^) C, \1 g) _) `7 t) a
- }
5 M9 x5 h Q& h0 Q* \# Z
* a\" d4 d6 x7 i C. \$ [- if(count_A == 4) {printf(\"%dA%dB\\n\",count_A,count_B);return 1;}
) ?% m. N( W2 u; m - for(i = 0; i < 4;i ++)
8 |( D. G( x! c - {
, |/ B. E5 W' H# ]6 n1 }; }- [ - for(j = 0;j < 4;j ++)
8 \ V2 y' p; H& @& L - {
9 L5 F4 B. t/ D3 N, ~& X- Z; @' x - if(a[j] == b[i]) {count_B++;j = 4;}
9 J6 o! v, U\" S, u - }
: m+ e' f\" a; W C$ q% t - }# {) h: D\" Q, Z9 V3 ^
- printf(\"%dA%dB\\n\",count_A,count_B);) ^% _% W$ O% t
- return 0;
% N) J& H! s+ O4 H8 N+ f6 O\" P h - }
$ G$ y! |; r1 ~0 d9 Q6 A9 N - void main()//c语言版猜数字游戏
* o* x* j5 X& m5 d6 u: d7 k - {- C' V/ z) Z7 |: q7 X: h
- int r_num[4];7 {1 s' Y! T3 _* V
- int input_num[4];% ^: k! _6 U: h7 D- C5 f* i
- srand(time(0));
4 t, x4 h- `5 ` F( { - int j,i = 0,temp1,temp2 = 0;+ e- w9 v T% N0 z
- /*********************生成四个随机数***********************/* v\" H7 a( j$ H8 Y3 g
- while(i<4)
* C6 m: ^/ Q' D3 D' r; e& m - {5 D4 g# S9 P0 r# g) [% ` v
- if(i == 0) {r_num[i] = rand()%10;i++;}* g4 j# N5 c\" O/ O' ^% E9 k
- else
$ i: J$ h: [- K- s - {
6 ~8 [' e; _* X! W - temp1 = rand()%10;
1 N6 S1 |. a }7 O\" U/ ?, J3 X - for(j=0;j<i;j++)
! D5 g0 H+ G6 V# x5 j4 j0 D! x - {
- F. e0 J, c: ] - if(temp1 == r_num[j]) temp2++; 7 p F4 z' ^& `2 F\" G J1 Q5 R* k
- }: e7 J: r8 Z( t\" O# _/ |
- if(temp2 == 0)
/ |( P; g4 }3 z) V, }$ O; ` - {! z' y* L+ A2 Q W: S
- r_num[i] = temp1;' a6 ]- {. |9 z1 i
- temp2 = 0;\" O( g8 X Z4 {8 C# k8 D7 w9 T+ I
- i ++;
/ X+ X3 k s# g7 c* i- S - }1 W/ H( I' a8 B$ x, |6 i
- else
) R3 H\" O: V( Z& B( U! |2 I - {
* |* ]( k& z/ N& H2 j - temp2 = 0;
# p# g- n( q4 j\" ?, [\" Z - continue;- R6 a9 y& K2 b0 ^3 s
- }
4 a- x ]% q% V' @+ _5 @ o - }
?4 w; a% ^9 `6 h9 v8 W9 g - }+ X/ m2 a: ]2 U- R\" i& G
- for(i = 0;i<4;i++)4 ^$ s U! |$ a7 b: j+ V& J
- printf(\"%d\\n\",r_num[i]); W) G- r0 L+ g0 E8 Z# C! K
- /************************猜数字游戏核心部分*********************/6 q8 F) s$ d- _
- for(;;)
. ^; ^; c6 ]* T* x) b - {8 D+ K0 L1 `7 q
- scanf(\"%d\",&j);$ P4 f# f! k4 S
- input_num[0] = j/1000;
+ c7 _# \\" |4 s - input_num[3] = j%10;
+ B+ z% }2 ~. u\" F5 W2 H9 P - input_num[1] = (j - input_num[0]*1000)/100;
2 ~- f- R% Z6 Y6 z+ N - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
. F( A% v6 `1 X1 [ - /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
* D9 d( G. }\" i - if(judge(input_num,r_num)==1) break;
, Y/ S2 Y8 s( M' \& [* e$ e - else* S0 e& h. S N+ d2 A3 a1 A: u
- continue;
2 ?2 Q: n; ^. e$ V - }' S3 `0 w7 b& s: E
- }
复制代码 |
zan
|