- 在线时间
- 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 编辑
, ?# y: T5 y! m9 r4 x* \$ Y( c, b/ i3 u7 F) w7 I
上一篇:科普之-------随机数rand()的用法
& y" F; P5 ?' E上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。4 U& q$ }/ r! @- a% N+ y5 ^$ n, b
程序的流程是:
2 v( z; |2 e$ i) w1.生成一个四位数要求每一位都不同,放在数组的四个元组中+ e" q2 ~; U! Z1 m ?: E5 s6 ?
2.要求用户输入四位数# O {% X8 ~( \+ Q! ?
3.程序将用户输入的四位数分离,放在数组的四个元组中6 D# p' w( J* x
4.将两个数组进行对比,记录对比结果
& g. L' F1 E* Y7 b( ?5 b, O2 y5.输出结果, y8 }! ]; k1 ^ A: X5 {
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>& ? d+ {. }, I2 H) Q/ ^! t
- #include<stdlib.h>
/ m' H5 g3 g4 q- F - #include<time.h>2 [/ l1 }, y. Y+ t. K, O
- int judge(int *a,int *b)8 k\" ?8 S w- X/ e3 S5 G
- {
+ I ^' F* {( A. |$ m1 L - int i,j;8 B5 y; N, c1 S$ H
- int count_A,count_B;
8 a2 P3 i5 V( x5 ~0 h5 l - count_A = count_B = 0;
& j/ o1 M7 ~ [9 W. W - for(i = 0;i<4 ;i++ )
\" _/ g$ g, z% u O9 R) ?' ]4 ] - { # e1 K1 w5 A% }! l
- if(a[i] == b[i]) count_A++;
( t: c1 D7 |; s* g/ ?, p1 l2 c - }$ t4 W& f( f: J- T: z3 K9 ?9 t8 k
4 `8 K6 Q9 g! a- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
. _3 K/ L! e6 u\" \6 Y- x! |2 j1 e5 D - for(i = 0; i < 4;i ++), v3 M2 f% K6 |0 R% |9 ~
- {
# B# g1 ~* P1 y X - for(j = 0;j < 4;j ++): A' ~5 i }- ^' \
- {; k. y/ O4 p- K# s- c2 P( m
- if(a[j] == b[i]) {count_B++;j = 4;}9 t( k8 i# H8 [5 C$ G
- }
' Y7 [- X5 x/ G: A - }
% M0 p# l3 T% L' Y$ y5 w - printf("%dA%dB\n",count_A,count_B);# g\" i3 o2 d& M8 \% x) N! h
- return 0;
. U+ R+ T! {5 U2 C5 X2 v1 g0 U - }
5 _5 |6 e2 o$ h$ O - void main()//c语言版猜数字游戏, T0 H9 c\" x8 ]* ^ I/ n G
- {
- W2 u7 s. P# Z2 c\" P - int r_num[4];\" f# M+ L3 Z1 l F
- int input_num[4];6 z' R' l7 \8 W
- srand(time(0));
/ o& I' w `/ D) F; p: ] - int j,i = 0,temp1,temp2 = 0;
5 K5 l; s' P9 Y [. T+ z - /*********************生成四个随机数***********************/
. Y. t6 M1 t2 p) b - while(i<4)
\" B9 V3 n8 q9 K. t) @. [( F2 E - {
, O, B5 W+ Z. e$ a A+ e - if(i == 0) {r_num[i] = rand()%10;i++;}& Y3 q3 k( `+ }6 ?
- else
4 y# K\" {% q% q- x - {
5 K) C: k+ n8 x1 f. o$ q2 v9 n - temp1 = rand()%10;
( d0 Y4 T\" |+ q! Z6 O! e7 J7 E - for(j=0;j<i;j++)
. @9 T9 o/ A' d2 a0 o - {& u+ F: B4 e+ k$ {! {6 {, n% E, \
- if(temp1 == r_num[j]) temp2++; . A8 ?0 o# m* L3 y\" ^5 t& ?$ U1 c3 i
- }% Z/ ?& M\" B! B& d: e
- if(temp2 == 0), j5 S( S5 {$ D+ v, t
- { ^1 c% T; `5 d b+ b9 v! N4 j& x8 ]
- r_num[i] = temp1;
# d: ~2 O6 H* A% w+ y2 `8 O( X - temp2 = 0;
. Z9 B8 j* E\" w+ o - i ++;
2 i6 Z; Y/ i ?- }4 p9 ? - }4 I/ [6 ?0 M; o: Z- h
- else J6 k& p. Y* ?' l( W* Z\" f- X1 C
- {/ a, O; u8 P6 K# y
- temp2 = 0;
3 T/ O- c6 l' i' V g2 J# o+ @ - continue;
7 Y7 J3 x5 f/ z% y9 A\" Y\" N - }! T5 F8 D* o. m; H% i
- }
1 E2 t# j# z2 B& \- M% e - }
- Y: Q+ {; E0 r! f% q5 N' I - for(i = 0;i<4;i++)7 d9 M3 K& u2 i p8 p
- printf("%d\n",r_num[i]);
5 p3 j1 B\" Y% R! z- n) E - /************************猜数字游戏核心部分*********************/3 j. J7 w5 i# Y' Y5 {, P ]
- for(;;)
5 o\" E- d0 s9 W0 V/ i0 e a7 Z+ g1 o- M - {
, `+ b' b+ s9 O( j2 E( x) [ - scanf("%d",&j);' z# |+ `/ B8 o. _0 g! ]# D
- input_num[0] = j/1000;
2 u8 ~! o- [& v* u& p$ W) B: H/ [ - input_num[3] = j%10;
3 M& ^: ^7 \1 \, h\" s# h - input_num[1] = (j - input_num[0]*1000)/100;
! |- c$ K; }, k& f8 x3 \) Q - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;! `/ G4 |8 }4 _' B. b* C
- /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
( x* z$ i& B: }; Z& [\" j3 F - if(judge(input_num,r_num)==1) break;
+ J+ y! r9 C7 T - else
( G5 r- l: A) w - continue;* I! U\" k. c% P. l
- }9 E3 J3 y/ j8 u* r9 K T7 n
- }
复制代码 |
zan
|