- 在线时间
- 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 编辑 + t) k' T- R/ ]
, v( H2 P# W# ^ {: r- H: e% f1 f上一篇:科普之-------随机数rand()的用法
# a8 y; u0 e$ ^" O* Z y上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
6 _$ G- g: O3 _: v6 `程序的流程是:5 I$ |4 Y! b! V3 n0 W3 l/ m
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
% ~4 y* Z! [( g4 _3 l2 B4 ^4 ^" e2.要求用户输入四位数
5 e9 s: o( H! U$ X3.程序将用户输入的四位数分离,放在数组的四个元组中1 a9 }. u! Q% A* C; P f
4.将两个数组进行对比,记录对比结果
0 o, x7 E6 t3 q7 h5.输出结果
# K k: z2 `3 ~8 F7 F
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>
5 V# Q) Y. J$ V4 g* n) n - #include<stdlib.h>7 C. U3 V0 L5 V- P
- #include<time.h>
% M\" X$ K# H7 N+ Y8 m - int judge(int *a,int *b)
. Z3 m\" O/ _% s - {
7 T7 F\" n; M\" J - int i,j;' q# f% Q, q9 `) d0 }\" S8 K
- int count_A,count_B;
1 F7 w9 {: t* u) N4 q/ B - count_A = count_B = 0;9 }4 j9 l1 r' U3 S
- for(i = 0;i<4 ;i++ )9 E4 k( }$ e$ f- \# r6 ^0 }
- { ! }+ x9 t6 C# B2 p8 s
- if(a[i] == b[i]) count_A++;
( M: j6 u# L7 q - }; A5 p+ E2 a0 C- d0 Q6 c
4 |2 Y$ A2 Z9 @, t! Y' O0 D+ u0 N\" z- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;} r$ K) H+ j( |
- for(i = 0; i < 4;i ++)
8 X% k. w\" V, p) B; }- U+ C, g - {
! t. D( T* U+ `: P. T1 G - for(j = 0;j < 4;j ++)
$ G5 l& x& Q4 H1 t* f& c0 f - {# q- ^: j- k$ `
- if(a[j] == b[i]) {count_B++;j = 4;}* V( {* d) O8 }' u P4 f' V0 Y
- }, `6 i) K. r2 L: ]) C9 _
- }
- v( B( o$ ~7 W' C0 S% m. N6 b$ M - printf("%dA%dB\n",count_A,count_B);
; k; i# g' J. G. B) [; g, ~ - return 0;: L- f; u7 I& m2 D2 l
- }$ Z3 r( O7 p7 t- b2 B
- void main()//c语言版猜数字游戏
+ Y+ x( Q2 S' S+ K# t+ n5 a - {
- y\" }. s. |# P - int r_num[4];
9 J6 u( |6 n) m7 y( y& W - int input_num[4];! t$ s3 m, f$ {8 q
- srand(time(0));- U$ W$ b0 o$ d5 o8 |
- int j,i = 0,temp1,temp2 = 0;
3 F k* ~1 c8 V! I8 v* o - /*********************生成四个随机数***********************/8 g# e$ w W) G9 K( k
- while(i<4)
& Y9 U$ m* L# W8 v\" x - {
. r1 ]9 b9 D' ^9 Y - if(i == 0) {r_num[i] = rand()%10;i++;}
, r0 q3 h' m, |, m - else
T5 W; R) ~! \# [# R4 X2 z4 d - {
+ Y v% E0 v' C% `8 u - temp1 = rand()%10;& K, Z A) F3 t; u6 o+ p* t5 {2 e
- for(j=0;j<i;j++)
\" w2 [; W/ m0 N% o4 N- N( k - {/ v3 v! C* P9 h
- if(temp1 == r_num[j]) temp2++;
* j! }& L4 v' G s' K T$ E - }
' ?, k; v9 Z# r6 D; @( U/ f9 R - if(temp2 == 0)- B3 [/ w3 p8 D- _% I7 {
- {
. n# M- R$ ^# G1 \* l: }* d) J6 A - r_num[i] = temp1;% c5 O9 L2 {6 C
- temp2 = 0;
1 U\" R# Y) C: ?+ Z0 u - i ++;3 V! L5 U! i1 Y
- }2 N( _# q% f1 S/ s6 J
- else+ n( j8 H: K$ W\" H( ]6 T
- {0 R* H9 X1 b/ F' g' c( c
- temp2 = 0;
5 S\" C' L: {! o - continue;
, d0 k+ r- ]\" |$ W2 L; i1 ^ u& M - }
2 i) ?# B. n7 r; p - } ( b1 @3 S% G3 ^
- }. X0 D' y4 V) T
- for(i = 0;i<4;i++)
G( O$ [0 K& V: L2 u. S0 V$ I - printf("%d\n",r_num[i]);' n3 H0 `, m& g0 N. J l& M
- /************************猜数字游戏核心部分*********************/; v! R8 E) v& g) |
- for(;;)- T6 u$ D s1 F
- {
1 |6 y% ~3 u* U% q - scanf("%d",&j);) g8 ^- ]1 ^\" q1 }' |9 J
- input_num[0] = j/1000;
. ^( Q+ I2 y' Y# x0 y; d) I - input_num[3] = j%10;
' {; V. _: c: \1 ?2 }' x\" G - input_num[1] = (j - input_num[0]*1000)/100;' | l' Y% k* u
- input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;# M! b1 F\" i; T, O4 B; p
- /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
2 U6 A% {2 Z9 W. i1 z, @ s - if(judge(input_num,r_num)==1) break;3 U' Q; M% A S! U\" X) N3 t' Z
- else6 v1 M\" ^+ N( `
- continue;; ^/ X. }/ x: B1 D: ] N0 B$ C
- }, S1 o% @7 { x# i; @6 }
- }
复制代码 |
zan
|