- 在线时间
- 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 编辑
2 n5 c/ m7 h7 U6 S! c5 Y" }2 H, z m
上一篇:科普之-------随机数rand()的用法
1 d/ c( c7 [, X+ R% P- g上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。3 b y! C" X2 M' T9 f2 k; B
程序的流程是:% L# ]- s0 \* T. z
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
, X5 p$ c1 g" Y- J; J: |$ q% {2.要求用户输入四位数: q" y8 k+ j0 |! b# v
3.程序将用户输入的四位数分离,放在数组的四个元组中, d/ n, D: g8 ]9 {. {8 m
4.将两个数组进行对比,记录对比结果
, _" N% m3 {# F7 |; F5.输出结果
, t* i3 K# { B
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>
% [1 K\" F+ L/ B0 C$ Z - #include<stdlib.h>
6 s. D6 v2 p9 } W7 }, Y - #include<time.h> _0 q& \' y s9 p1 Z7 d3 k
- int judge(int *a,int *b)' ?7 Y* @& U$ x) y* ?
- {
3 [7 D% b3 ? C' R\" _/ w! n% v - int i,j;+ T) N+ u2 y9 e
- int count_A,count_B;& X) ?! O+ Y' |7 ~
- count_A = count_B = 0;
) o5 @9 P* B7 U - for(i = 0;i<4 ;i++ ) n5 T% k. }4 ]\" W
- {
% V/ t3 V0 \! v+ K - if(a[i] == b[i]) count_A++;
& l3 M5 k4 f. o, R! K# W) N( J - }
+ q3 A0 ]& Z4 L# T! t! F - ! T: a0 [& u5 \$ x: [
- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;} A/ m2 `5 b% e- x/ l8 m% @! z
- for(i = 0; i < 4;i ++)
+ l; S& Z& n4 ~0 _/ o' w - {
& u, ~; ]) l% o - for(j = 0;j < 4;j ++)7 R% ?8 y& X- A: j6 Q\" P p- z
- {( F# U$ B; a# e- g8 I; C\" s8 }5 I3 N8 w
- if(a[j] == b[i]) {count_B++;j = 4;}
8 N& `' J$ C\" q7 s9 S - }( L2 J [! f$ j5 a# B# B6 o# |9 c
- }# H% o( Z0 p' {9 `. H1 v
- printf("%dA%dB\n",count_A,count_B);9 U, z& L1 @+ u
- return 0;
: ^1 \( ?5 R3 u! t6 R! ]3 _4 o7 ?9 Z - }- E }# Q% u3 \
- void main()//c语言版猜数字游戏. s9 x1 n! l& E* y' L
- {# e E) k2 S* D+ M
- int r_num[4];
+ Y6 R k; s: |* y6 E - int input_num[4];+ r2 Z* @+ v/ F0 L
- srand(time(0));+ o; b4 ]& |; S5 r
- int j,i = 0,temp1,temp2 = 0;
# Q* j6 u5 Z ?3 v* v; i1 X - /*********************生成四个随机数***********************/
6 l$ W ^\" R1 X) i) H1 j; B6 o9 G# n - while(i<4)
) P' {) o: B! W - {9 t: @& o! Q' H, l& T. F4 w
- if(i == 0) {r_num[i] = rand()%10;i++;}+ _: {' a6 Y* `6 Z1 ?6 N
- else8 k9 P+ `5 B0 {: S
- {# \! x. X# q8 r& {7 s6 D
- temp1 = rand()%10;* r- H4 S- c7 ]' u
- for(j=0;j<i;j++)9 D& j3 u( w. ^: Q0 E8 d' ~, J
- {1 d- V) e% n7 `\" J
- if(temp1 == r_num[j]) temp2++;
- B% t. r3 f9 y/ F6 s7 ^/ B1 ~ - }
# d; c+ A0 G0 _3 q/ X- ]9 d! q# g& M - if(temp2 == 0)4 X2 y% |0 Q! _' ^; i% m
- {. \& `! c( o. e
- r_num[i] = temp1;) v) d' t& F. }- j
- temp2 = 0;# R4 J% X% J% y* S0 L
- i ++;2 v- V, f' U3 z% r
- }7 I [7 [\" L4 N9 Z ^$ E2 ?
- else& X' g0 h3 K4 N, V
- {0 q5 X k+ e$ v `' A; `) c5 Q
- temp2 = 0;
$ H) g, s+ c1 X - continue;, h4 p) _; N1 _7 K( @, k
- }
& E4 H. v. t. {' b - }
, O8 U! b4 m1 } - }% n3 _2 p# v [4 o6 ^+ c\" b# |9 ^
- for(i = 0;i<4;i++)
. N' e) F6 ^# I/ p# L3 x - printf("%d\n",r_num[i]);; z; b/ g% u. n4 ?
- /************************猜数字游戏核心部分*********************/
( F+ e) j\" b& C- M' F0 i - for(;;)
% q. u2 T& L$ {& ^\" \- d - {
( [2 E5 G6 N# e# p - scanf("%d",&j);
% o/ s0 E7 b, n& r5 E6 F - input_num[0] = j/1000;! J* t: h! `% J
- input_num[3] = j%10;) S4 D9 v- z9 M+ O- @
- input_num[1] = (j - input_num[0]*1000)/100;
& c6 |) c& f! N( S& G - input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;$ j: g\" {& p! U/ w6 h2 S* y
- /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
4 C- j& O; B\" V8 n\" Y W - if(judge(input_num,r_num)==1) break;* W7 t2 p2 j4 [9 I, _
- else
& r$ ~. Z$ j\" B - continue;
0 [7 `. }) q& d6 I! D% Y3 N - }
8 S7 e5 E9 r; t- G3 P - }
复制代码 |
zan
|