- 在线时间
- 491 小时
- 最后登录
- 2026-9-17
- 注册时间
- 2013-2-28
- 听众数
- 118
- 收听数
- 46
- 能力
- 268 分
- 体力
- 39229 点
- 威望
- 1340 点
- 阅读权限
- 255
- 积分
- 31234
- 相册
- 2
- 日志
- 0
- 记录
- 0
- 帖子
- 1389
- 主题
- 937
- 精华
- 0
- 分享
- 0
- 好友
- 111
升级   0% TA的每日心情 | 开心 2026-9-17 16:51 |
|---|
签到天数: 265 天 [LV.8]以坛为家I
- 自我介绍
- 内蒙古大学计算机学院
 群组: 2013年数学建模国赛备 |
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑 & r( a1 t' l) |+ a7 q
9 G8 B; c) H# K
上一篇:科普之-------随机数rand()的用法
' c- P4 ?4 t4 p0 T) q上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
' S- {4 q! k5 c* D程序的流程是:% s3 z/ j# C" [' h. ^0 Z% \
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
9 y. K/ x. Y1 v9 u. o9 o2.要求用户输入四位数
& z9 J+ a; @0 } L% {3 U! P3.程序将用户输入的四位数分离,放在数组的四个元组中
9 k9 L3 `* |: m9 v. Y- v" A4.将两个数组进行对比,记录对比结果( t8 b; u' b5 X% W5 s2 Z
5.输出结果
$ @9 o+ e/ t( Y6 v- #include<stdio.h>
2 B) d. |\" b! b+ V, x7 ~! Z' o* ^3 f - #include<stdlib.h>
/ e$ [' C$ d* }3 W2 Z* a - #include<time.h>
! k& v& s2 U, x p+ c+ M1 ` - int judge(int *a,int *b)
9 o* z( i9 m7 i) r' X. e+ w - {0 [. N* [/ P1 \5 W3 l: n
- int i,j;
. ^9 C) m/ P- ~4 |1 H, B( R q - int count_A,count_B;
/ ~3 }# ~$ W! n# k7 ^ - count_A = count_B = 0;
/ P1 g' R c5 B& ~ - for(i = 0;i<4 ;i++ )2 K+ J5 H! {! _
- { - V8 O# K1 o J) V) Q: S: E
- if(a[i] == b[i]) count_A++;5 X\" R1 `, ]' A- t9 O
- }/ v3 i' z+ X2 P4 I( s
- \" `3 X4 h! F, t6 D7 o' E2 K
- if(count_A == 4) {printf(\"%dA%dB\\n\",count_A,count_B);return 1;}; ?* G, a6 C! p4 q0 Q% O
- for(i = 0; i < 4;i ++)
8 N* {% ]: \0 J7 `( I - {
$ I; |* e% ^- w8 @) p - for(j = 0;j < 4;j ++)- b& p8 b8 R8 v* t\" _( s& @
- {: ?5 H; `' b6 g
- if(a[j] == b[i]) {count_B++;j = 4;}9 x, A5 W4 W. G\" v
- }
. @+ H! T* H\" q, j% I1 Z J6 x. L- m1 T - }
+ `+ I# i$ r4 n - printf(\"%dA%dB\\n\",count_A,count_B);$ I' \3 p+ E4 i8 r% B, g# n0 K
- return 0;
+ x+ _# D3 \% ?3 w; Q2 n3 u - }
9 f* U9 i1 V- r L9 y* P8 y - void main()//c语言版猜数字游戏
8 ?4 ]. \8 u2 h. S - {7 S S3 E) m\" Z4 s3 `' ]
- int r_num[4];
, N; g) I$ ?! ^8 C( T - int input_num[4];; V9 P$ m2 h6 B3 k
- srand(time(0));
* P3 K( m1 l2 ?7 V2 i) U6 P0 p - int j,i = 0,temp1,temp2 = 0;
, W$ S7 \6 d$ J+ [9 s - /*********************生成四个随机数***********************/
! } M/ T& a- K$ p - while(i<4)4 c3 ~( u4 o1 A% X# S+ Q
- {! C7 S2 c+ i: I: k! K
- if(i == 0) {r_num[i] = rand()%10;i++;}
9 ^ u! e& s) Q( F# u1 h - else! d1 x$ j% N9 |6 `- }; M
- {
6 K\" \; S/ \ R# Z, h - temp1 = rand()%10;
% L! a/ `4 h0 u/ j6 v - for(j=0;j<i;j++)
) S b, L. c& E, W& v# p$ c+ q2 s1 K - {7 y& `7 M3 |0 y2 v
- if(temp1 == r_num[j]) temp2++;
% I4 X1 m\" `; q7 t! `) U- ? - }& l3 c' x H* h+ J1 u# `: J
- if(temp2 == 0)9 J4 w, p, [, J8 N; O\" }7 Y* |( I! m
- {& e& w& S4 L$ @, _8 z$ R9 ~
- r_num[i] = temp1;/ W2 K1 j) D8 c- x- x b4 _$ c
- temp2 = 0;1 Z# s* Y. y5 Y) u/ K
- i ++;5 T- E$ x; s* L( G. V$ S8 S2 j
- }7 T. g4 f. @7 R9 L- s* |
- else
6 v* T\" @( p4 M - {3 s7 |+ y8 Q\" @: l; b8 A\" m
- temp2 = 0;4 ?- A' f$ p. H! ?+ P
- continue;4 F8 [2 m( `\" v
- }# A. A( F; H\" {
- } ! g+ ?, O\" P# } p/ n
- }6 Q- I3 ]! h- G\" `' n: l; E& @/ V
- for(i = 0;i<4;i++)
! ^8 w* ^6 j! l- ? - printf(\"%d\\n\",r_num[i]);
/ f( t: |# G% `& _. a - /************************猜数字游戏核心部分*********************/
! V N1 V9 P% k6 g - for(;;)
( Z5 h% P9 }/ b4 ] U3 v - {4 }+ X* D\" L2 z2 D
- scanf(\"%d\",&j);
# @2 Y* F3 J, s - input_num[0] = j/1000;7 G, X A0 ?! h
- input_num[3] = j%10;5 o- t \, N1 _1 G0 r, y! O% ]
- input_num[1] = (j - input_num[0]*1000)/100;: Q3 |1 D: P! q1 S+ ]
- input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;# j% i Q4 E' E* l* l
- /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
* m2 W% W$ O$ a) Y+ V! c z. R5 G - if(judge(input_num,r_num)==1) break;( e# _\" I4 h. h+ ?# r( h/ |6 r, K
- else
+ l6 Y* g; d7 r E. M& w- j7 T - continue;
$ }; O& |- k4 L\" U# Y; ] N6 ~2 _ - }! t( f1 z) P/ T/ O7 E9 \
- }
复制代码 |
zan
|