- 在线时间
- 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 编辑
9 S8 n1 ~ t+ q
# V5 i/ m J5 t* [ a7 B2 ^上一篇:科普之-------随机数rand()的用法
8 A/ F# f# h5 Q% W( y2 G( J上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。5 P& @" {! e, p& |: u
程序的流程是:& {( a5 R! {7 q H
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
% `, }' Y4 X8 Y: Q2 r: r0 C2 z1 a2.要求用户输入四位数& |: _# i' N' D9 q4 i
3.程序将用户输入的四位数分离,放在数组的四个元组中
* i" y* a" _$ ?8 p4 l4.将两个数组进行对比,记录对比结果
2 ]; k- }! z7 y1 b: ?5.输出结果
. R' I* X/ ^: ?4 w( q5 |9 G K
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>7 x! ?- B\" B( P. N# ^% f
- #include<stdlib.h> b3 g- p/ P\" ^0 N1 @
- #include<time.h>
/ g' X$ ?0 G( n6 A9 u - int judge(int *a,int *b)
5 f' G9 Y: {9 q4 ~/ y+ w2 o - {
* A9 N\" ?% s/ X* D/ D A - int i,j;
2 K1 @! k1 i4 ~6 ^ - int count_A,count_B;
* X2 y$ J\" T\" L( ]1 L - count_A = count_B = 0;( u5 F. K U! l* U1 z! x
- for(i = 0;i<4 ;i++ )
! }$ A' Z- X, _: {: x - {
9 G! {5 j1 v: M. ^! _5 _ - if(a[i] == b[i]) count_A++;. s. w- h8 P P. @
- }
. }# S/ ^- V' y( _1 d - \" j\" S7 L' Q. ]3 m
- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
) A' w9 O+ c* S8 z% D% q! I - for(i = 0; i < 4;i ++); U( C, K7 e/ K
- {
, C* F* ~5 Z9 C! w: E- u - for(j = 0;j < 4;j ++)
{+ L3 l# ?/ m/ ^5 ^ - {
$ I- _4 `) q8 X4 i6 I# b3 h. S/ P - if(a[j] == b[i]) {count_B++;j = 4;}4 t! D8 |1 E! R3 C: `
- }
. s. I6 [6 d+ t - }$ N+ a' V! q4 V\" N
- printf("%dA%dB\n",count_A,count_B);, d: w' d: T8 ?
- return 0;
, u4 c% J4 J+ W5 {, H - }
4 {, ^* Z: `- C5 ]7 e: b - void main()//c语言版猜数字游戏
% z h; V0 U1 ~# p: X. @ - {* k- `; I- P3 u3 J
- int r_num[4];
& m# |1 A+ M. f\" I( X - int input_num[4];5 k7 b& N8 g. s+ L- G
- srand(time(0));\" t8 G V1 v; b% [. [
- int j,i = 0,temp1,temp2 = 0;1 a\" B, n, w9 F* a9 W
- /*********************生成四个随机数***********************/
( ~, u& m9 m! N, h# J7 k8 D, N - while(i<4)8 Q6 C! R M$ k+ o3 C
- {
I1 `: o: v6 Q c - if(i == 0) {r_num[i] = rand()%10;i++;}
: j+ M7 p$ v7 B- ~ - else
: `8 E; G5 I w, k+ ~; T' w - {
3 W3 `) {8 n G% _. [$ R; A3 B4 ] - temp1 = rand()%10;
2 j. m8 K\" i7 V - for(j=0;j<i;j++)
! E P- a3 I5 t. L) V - {4 t8 q! O' y* v
- if(temp1 == r_num[j]) temp2++; % _9 W* a1 d: ^
- }- \) F3 c: C; n' ]+ D8 v/ U5 G& J
- if(temp2 == 0)
, S E k) g5 W: L - {5 v+ E\" g5 M) R7 @
- r_num[i] = temp1;; W2 E! G9 [6 i; W
- temp2 = 0;
. \) y( A( l! `8 @8 p# J - i ++;
. j# g7 X* V& R4 W - }
, u( v7 h8 q6 m$ k9 O% Q( Z - else
1 @& y4 \/ \1 e% E - {
! ?1 e+ q! L3 V9 s. D1 M1 q6 V - temp2 = 0;# ^# v$ H# u, d/ a S4 x\" Z/ n
- continue;
- i# w& o% U# P% D\" ^ - }
0 q' O+ q' |: c% h1 C - } ) w- b+ v) E! B! G3 e
- }% _2 M k( S1 D( W1 Q. l, D
- for(i = 0;i<4;i++)2 I' _# V0 y8 b; ~
- printf("%d\n",r_num[i]);
$ M; C7 y% `# r\" q \8 x$ a% V- ] - /************************猜数字游戏核心部分*********************/2 S/ Z! S& w' J; u; O. M
- for(;;)$ i: R, O# O/ Y( t. S p
- {) V1 _* \5 H- f# F7 c' W4 @
- scanf("%d",&j);( ^7 c$ z$ z1 R
- input_num[0] = j/1000;
4 Q# @! [# i. _# d3 m# z- x - input_num[3] = j%10;) b, | X: k+ B* v1 c
- input_num[1] = (j - input_num[0]*1000)/100;5 ~2 n9 B8 A: w `6 O# O- I
- input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;0 O3 ]) P* X `8 @+ |8 x2 M' j3 L
- /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
2 _3 ?% N4 C7 f$ r - if(judge(input_num,r_num)==1) break;
; J6 `+ V. {+ R5 Y/ ` - else
7 h7 t) f' w9 W- e - continue;
; e5 |2 j, z; T8 }& P: Y - }9 `. D$ ~( i; T. J0 |
- }
复制代码 |
zan
|