- 在线时间
- 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 编辑
: A! G/ [& O* n0 K; |
9 v$ G: @7 Y- j& x- P% j( h/ s! f上一篇:科普之-------随机数rand()的用法: l8 D* p/ H+ z# j7 m
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。5 B! L# ^, \1 G3 l( z1 b
程序的流程是:
# z g$ F$ |0 p4 p0 J9 p1.生成一个四位数要求每一位都不同,放在数组的四个元组中2 _4 Y1 l9 {7 N$ M
2.要求用户输入四位数
0 Q3 s8 s Y. v0 p2 k9 @7 `3.程序将用户输入的四位数分离,放在数组的四个元组中' S/ Z0 z: W! O
4.将两个数组进行对比,记录对比结果1 t: N% I0 Y2 D5 J) v
5.输出结果6 r$ Q1 N" T/ p. H& v
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h> u' n: F8 q \# b! l: m; e3 z
- #include<stdlib.h>
F, D- e+ a5 X- O9 Z - #include<time.h>5 E- T) W& r8 {# L6 W1 K8 _
- int judge(int *a,int *b)
7 _% W) J/ H' r+ q6 E4 V2 u6 Q: k3 g\" r$ { - {
( Z! K t; V\" b$ P: X S - int i,j;# X7 ]7 W3 L2 L2 r\" ^' t$ s$ x/ }( G8 {
- int count_A,count_B;0 v6 E. [* t; q
- count_A = count_B = 0;* h2 J* P) S3 [3 k0 U, H/ O
- for(i = 0;i<4 ;i++ ), u( j/ g; |\" W1 F- m* F
- {
8 B u% X2 s8 |0 S4 N - if(a[i] == b[i]) count_A++;4 ^' e4 O1 k5 b/ @' I
- }; Z1 c' v- T9 D\" Z
- 4 Q: J+ T% |- {2 g) I- J8 k& H
- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}- J* G8 @& }8 ~6 y\" l, M4 @
- for(i = 0; i < 4;i ++)
; G3 v% G2 p( _: s8 ^9 \ - { 2 L4 G% I6 {8 h6 W0 b
- for(j = 0;j < 4;j ++)7 p# L0 b/ t; i; {
- {0 s2 |5 n) m& N# R4 E\" u: Q
- if(a[j] == b[i]) {count_B++;j = 4;}
# ^1 _# E9 V4 b' g5 O - }
. t3 m0 G7 h) w; w; v9 W8 q7 l - }
! a x$ {\" s; O4 H# F% { - printf("%dA%dB\n",count_A,count_B);
N4 U, k% f; K0 |0 x4 \4 V1 R - return 0;7 `, Q\" I8 H& c9 Z' k
- }
\3 W* Y6 `; l& x - void main()//c语言版猜数字游戏1 f3 r3 h7 I& i& i. y\" i! H
- {3 u0 A( P: v! e) q, V1 @! J
- int r_num[4];8 D. T) r4 U! p5 B7 ~\" i
- int input_num[4];
! Z# C: L: x' [5 K5 F! | - srand(time(0));
\" z; d+ G' f' y: Q1 `9 k - int j,i = 0,temp1,temp2 = 0;
7 {6 R2 }4 z; M. n+ c - /*********************生成四个随机数***********************/
# K7 v( O! \3 w5 N/ q: l! Q\" ~ - while(i<4)
\" W# a\" M e7 w9 z% s! T, G3 O' S - {
3 G\" p7 n8 x9 J5 h$ i - if(i == 0) {r_num[i] = rand()%10;i++;}
& W. L7 q9 S: Q8 d9 H5 ? - else
2 z M: s: ^8 L8 R0 S - {
) f( O- e. E+ L- J - temp1 = rand()%10;
5 ^3 ]: i0 _2 D# O, }, U8 r - for(j=0;j<i;j++). H\" {# I% A8 Y0 T
- {
! E( ~& V/ O3 a0 ? - if(temp1 == r_num[j]) temp2++; , V) g7 \7 s' ]- _/ D7 Z6 N! ^
- }9 z+ n S/ l# S5 h
- if(temp2 == 0)
8 m8 t- X( a. }4 o3 ? - {
; `! o% }' t2 g. ~4 g+ f; Y- o - r_num[i] = temp1;4 v% I. `- }; M
- temp2 = 0;
, y# p* b& }: g: x4 G: { - i ++;2 o0 b1 A, p; N\" L) Y* X3 ^
- }: Z7 Z: z$ N; [' F6 H* o
- else) c; X( i7 _5 x0 M( w& Y
- {
. o* j' b, [4 b1 ?: e - temp2 = 0;, Q: T6 Q. J F$ W$ m0 y
- continue;
S6 p7 n8 F; x' m$ \ - }$ P* v- a\" A7 m1 s6 i0 K
- }
. }2 A1 W! e* c: j9 M - }
: ~0 c: Q* F$ _8 z6 Z% d0 n; b - for(i = 0;i<4;i++)' L3 ]& a: |7 X& W, M2 f\" d6 E
- printf("%d\n",r_num[i]);0 a8 l4 H9 j! `1 D s1 r! k# @
- /************************猜数字游戏核心部分*********************// x. x8 C# r5 p\" q& k' S; |/ c
- for(;;) K, f0 n2 ?. o r' s8 I
- {) u) t/ n: m\" x5 L
- scanf("%d",&j);2 ]& ?\" U+ Q$ Y5 h4 H
- input_num[0] = j/1000;
! x$ R+ N6 p2 D - input_num[3] = j%10;\" q2 c7 Y- i9 j& {
- input_num[1] = (j - input_num[0]*1000)/100;
: u# [+ m* Y3 J& C( h. { - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;4 M; e+ z\" Q1 j2 U j$ m( R% J% p- [
- /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/3 N6 K2 ]- ^/ i' x9 _6 X
- if(judge(input_num,r_num)==1) break;
& ~# S( f8 V- t1 K. j* o) ~ ` - else8 e/ B3 t# X9 w
- continue;9 X9 P7 h$ ?. | P6 e1 X+ d w
- }
7 H9 b9 v, @8 T9 C' T - }
复制代码 |
zan
|