- 在线时间
- 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 编辑 . s8 f3 T u6 O" h }
8 g+ Y& p% ^- t' V: E上一篇:科普之-------随机数rand()的用法( l5 [* E" ?' a, `& Q) g
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。3 Z- Q2 x- K! q' U
程序的流程是:/ I1 ]# `' |# c1 V( `* \
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
- Z$ d1 I) o+ i0 L; k2.要求用户输入四位数
4 x; G, L* g& G9 ~3.程序将用户输入的四位数分离,放在数组的四个元组中
7 \- ?# z6 a% Q3 l# ]( J$ r4.将两个数组进行对比,记录对比结果
8 w. D) `4 d/ J5.输出结果, G# F. {( E5 u$ N2 n( Q& Z
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>' u) h5 ^- w I+ g2 ~\" a- v
- #include<stdlib.h>+ w2 w4 W. w) s, B- m. h7 W3 @3 I
- #include<time.h>4 `. t/ @3 b( T, b }* Y! L
- int judge(int *a,int *b)& W+ X1 A) j$ K$ V
- {
O }. y' z3 n - int i,j;# F1 D8 Y( R; q$ ~, Q v
- int count_A,count_B;
+ p; l s# w! ^ Y9 L - count_A = count_B = 0;
4 r h' }( s2 n! i, ` - for(i = 0;i<4 ;i++ )
# d) ]& z# J1 ~7 B4 y - { ; N: m: H. m; D; _. D- n
- if(a[i] == b[i]) count_A++;% G8 h2 g; p2 Z3 E; y
- }
* Y3 v\" V3 |) ^7 G( e& k - + T5 A! u! a+ [( \' o( Y' a2 ~2 C0 x: z
- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
6 a) _ [9 O3 H8 d& K6 n, G - for(i = 0; i < 4;i ++)) |; K. y5 ?) z% q
- {
0 R4 d2 T- R% u - for(j = 0;j < 4;j ++)! `. I1 f3 W# s q; o4 @2 G
- {
$ a6 j8 c4 {) j# ]2 [& H - if(a[j] == b[i]) {count_B++;j = 4;}\" e2 U- X; Z, F, V) Q* `+ @6 C
- }7 F& j3 P& L, x\" w- v2 j! E
- }
2 }) d( }, B9 E0 C0 V, Q8 K - printf("%dA%dB\n",count_A,count_B);
7 s\" S j5 q7 ~9 Q9 N5 }; r - return 0;9 S4 P5 Y9 v8 H7 u9 q
- }
0 r( h) B% W8 P9 | - void main()//c语言版猜数字游戏
) z) u. X0 B8 z+ I - {, }8 `. x# P) R5 T* k( l+ x
- int r_num[4];
5 J# ?* R; {* \+ D5 [& H - int input_num[4];
1 W1 N& w2 j2 S+ p: P8 d+ W - srand(time(0));' r* {1 v0 t. Z; Z) D$ m9 J
- int j,i = 0,temp1,temp2 = 0;
0 d' X) ^* j2 f* Z R - /*********************生成四个随机数***********************/
% U2 [* r$ p/ r+ N0 l - while(i<4). h& L5 q6 e+ \4 C
- {: j9 e0 X4 S5 Z
- if(i == 0) {r_num[i] = rand()%10;i++;}
% e- q: F, g2 S! z - else Z2 I6 F1 t7 ?
- {
# r3 I6 z Z7 f' w - temp1 = rand()%10;- Q! [- V0 o& B, T9 b0 B7 _3 Q
- for(j=0;j<i;j++)
, Z, {( I3 ]' v, a3 X - {
+ f' o+ I6 i/ v7 y( R& B - if(temp1 == r_num[j]) temp2++;
* x6 |0 p3 e- b7 `2 n. M - }
7 \\" t ]) F& d9 S+ T - if(temp2 == 0)
; r& [\" `% X# q - {: K/ v& G\" `6 l# B j R
- r_num[i] = temp1;
4 a! O9 G( d$ u3 F6 P+ C: L; S% x - temp2 = 0;
, w N( t- V) q9 G! E - i ++;
# R; a$ a0 d9 v) _* B1 ^ - }
% P* W* g& T, ^. U- S - else# j& B, N$ H5 r }' P) g
- {
, G1 e( B- g( Y: E% @3 V6 {% u - temp2 = 0;
4 H& e4 U/ D4 r* g' W3 L% j - continue;
( v0 r0 P; R' H! Y: k- i - }
, \2 d+ n2 V: B# |% R - } + k\" X- F9 F k; o. ]4 ^
- }
' {- D1 |' n7 F, [9 } N. n - for(i = 0;i<4;i++)# }) l0 U) p+ Q5 G2 l$ `1 K) y4 [
- printf("%d\n",r_num[i]);
1 B2 ]+ s d* b7 b& b\" Z' j - /************************猜数字游戏核心部分*********************/) E. K) T. u* N( h; [, t3 O( o
- for(;;)
2 l& }( J2 k4 E/ \ - {3 E, |5 A1 F# B! i0 x
- scanf("%d",&j);8 {7 x\" n3 T; E' k6 s E; W
- input_num[0] = j/1000;
( s& M: b2 I7 Y0 c - input_num[3] = j%10;
6 @: S$ e2 ~7 p8 S! i( e. Q - input_num[1] = (j - input_num[0]*1000)/100;
9 b% s! V1 X) s - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
9 ]( F) h5 |: l6 @/ C - /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********// b( }( ^8 o4 m: z* F
- if(judge(input_num,r_num)==1) break;
1 a0 _: m8 [! I# K! G; S) E# I* B - else+ E: }- C% K w% h: ~4 N& ]) C' J
- continue;
* [0 F6 k0 T3 ]; h$ n$ v# R) O8 q- m - }
; [6 @+ y2 h: t! r9 V - }
复制代码 |
zan
|