- 在线时间
- 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 编辑
7 D; Z4 P d- L& [% `; c `9 p' b5 x& Y# Y6 S8 H K8 N
上一篇:科普之-------随机数rand()的用法
4 i5 _5 a$ n! G: n上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。# E: P% \2 H8 \! f
程序的流程是:
+ o0 \0 @9 A- L+ l# D5 h1.生成一个四位数要求每一位都不同,放在数组的四个元组中
* m% {+ X. F9 X. X! @2 ]$ ^3 o2.要求用户输入四位数$ @' u& C+ I4 ^# ?; l8 H
3.程序将用户输入的四位数分离,放在数组的四个元组中
: \# ?1 |+ i! E9 o/ D4.将两个数组进行对比,记录对比结果
, e6 Z: g* }# _8 H5.输出结果
4 y5 [" W" K& v8 P3 |
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>
4 v6 Y0 ]& T; ? - #include<stdlib.h>' D) I6 C$ _3 Q, ^& a' N
- #include<time.h>
. u- y7 c2 K7 y+ @0 w - int judge(int *a,int *b)- u# _6 W6 R\" J- o
- {+ O\" B+ S S7 w5 O# d3 L+ i% V
- int i,j;) T5 C' k! w; L* s! N0 F! b
- int count_A,count_B;
8 v* O. v6 y2 ]2 m* L7 S - count_A = count_B = 0;
0 q( w7 J$ f) X' y% o - for(i = 0;i<4 ;i++ )3 R& S2 c* g( @1 O/ b& x! e8 C
- { ( f$ W4 b; u. p, o: R. h
- if(a[i] == b[i]) count_A++;
) s/ ~! } u0 d$ i - }' H, k4 |5 Y3 H+ X+ u
- # V- G6 ]4 I: `1 s1 _
- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
W$ r4 |1 K' a) V: |; a+ l! R7 L - for(i = 0; i < 4;i ++)
: p5 `' V\" F! T, [$ Q - {
: i) O$ ~\" X3 D+ P - for(j = 0;j < 4;j ++)
3 m; l\" U3 F1 V' ~* Y - {0 W\" ~* q$ H) T/ }) L1 @/ ]
- if(a[j] == b[i]) {count_B++;j = 4;}
1 ?$ O7 x1 e0 J2 W8 f7 D - }4 ~' ^; w( I: P, C* j
- }) u0 T; \+ ^& z, a\" _3 m
- printf("%dA%dB\n",count_A,count_B);\" g1 ?4 i1 L) T( Z, a* y, _/ i
- return 0;
& c7 H! w% d! a& Y3 l+ X - }
+ F1 i! s- }# U% N2 b4 g - void main()//c语言版猜数字游戏, q. O& t! A7 C7 Q( Q; I( S
- {
# `. g y& Q6 F& S - int r_num[4];7 f+ Z* g& V5 i/ V$ @% S4 x
- int input_num[4];5 N. W$ S+ t2 D- n/ Q( T
- srand(time(0));3 L1 V! R! s/ X( ]
- int j,i = 0,temp1,temp2 = 0;- ?! @3 n# o6 y- X9 C2 H0 I
- /*********************生成四个随机数***********************/$ O- K4 q3 h4 M2 w X, s6 j. \
- while(i<4)
4 T( h& F3 v6 U# V4 y - {; G9 O7 h, D- W! ~3 W3 W; C, |\" s
- if(i == 0) {r_num[i] = rand()%10;i++;}
8 y, W* V9 E3 B- s# V5 _ - else! X4 O! L2 {( b1 A9 M# A) c8 o
- {/ T8 C; ?5 `\" T$ m1 z' z: X
- temp1 = rand()%10;- T7 C5 y- i* H; {; E$ j: }
- for(j=0;j<i;j++)
& S7 `( Z: u\" N\" R) A7 E) m' _# G - {
1 X! E6 x6 S4 T! a! G: s8 c+ R - if(temp1 == r_num[j]) temp2++; ( T* N* z1 n' k6 X0 M* T2 F& E! }
- }/ q# Z7 g p( q6 b6 g* A) u
- if(temp2 == 0)
% ^9 w) e* g* B C! E - {\" O) C6 W: K( a. c: _% A& w6 _
- r_num[i] = temp1;
1 D9 k0 P- T0 z, k9 O - temp2 = 0;1 f1 U' X* ?3 O3 m b K
- i ++;
0 v/ `& ]. V3 t6 l6 c; S - }
+ n, m; U: n( h\" M8 f0 _ - else# A+ z* {( V* |
- {\" h; L* x4 Y5 Y
- temp2 = 0;
' c# |+ w& ?$ u( B, s- K1 I# ~ - continue;& a1 D4 o( v! z L
- }# D# F9 w! {% V7 g. ]
- }
( b2 x: C; o1 Z) P1 s+ E - }
9 k( I: `+ M, W9 x1 v - for(i = 0;i<4;i++)
! x. u) B* W1 L - printf("%d\n",r_num[i]);
. W6 }; }$ \- S - /************************猜数字游戏核心部分*********************/
\" H' u1 |' n% I& h1 d; x - for(;;)
7 F9 `6 e; F2 ]* I f. `) I3 J7 R - {
( c; q\" Y! @9 M9 d0 n - scanf("%d",&j);
' m+ W* k5 r$ {+ V - input_num[0] = j/1000;
: X0 [2 t' D6 G% q - input_num[3] = j%10;
, M: p\" U5 O! W4 M2 R' P; [ - input_num[1] = (j - input_num[0]*1000)/100; e6 f) h; L0 `5 g
- input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;* b3 \3 f9 w: L: `* g
- /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/( _! i3 H P# b! D6 l+ P2 G- u
- if(judge(input_num,r_num)==1) break;& C! p8 W% ~\" j+ `8 t! H
- else! {& J& L8 l4 h- a7 L/ Y6 W
- continue;+ h0 D- f4 z {+ K, ~
- }8 g$ w* u$ P# t1 q
- }
复制代码 |
zan
|