- 在线时间
- 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 编辑 ; W4 d [( _* \4 W
1 _; o8 J7 T4 |3 r, s. ~: B上一篇:科普之-------随机数rand()的用法
A( D3 f @# P6 S上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
" o, x# [: r9 l$ |; }( t程序的流程是:
: ?: v% g/ ?0 Y/ h8 _' [( {" R' L1.生成一个四位数要求每一位都不同,放在数组的四个元组中
1 C+ O# w$ z8 a& q% d+ @/ Q2.要求用户输入四位数9 C. ]- A! j/ u6 U* ~
3.程序将用户输入的四位数分离,放在数组的四个元组中, n! J& i' M% d
4.将两个数组进行对比,记录对比结果
; T3 c$ d: O4 t7 m+ q" K I5.输出结果+ N2 \1 b) w' B& I; C/ \
猜数字游戏的实现.c
(1.69 KB, 下载次数: 0)
- #include<stdio.h>5 Z0 x4 i3 }- z$ v6 L( `
- #include<stdlib.h>4 A3 V* c( z\" _2 d, K# n
- #include<time.h>8 M `$ J& d) w7 S3 {, x) \6 Y3 Y
- int judge(int *a,int *b)\" T# S' s1 @* }$ Q7 r
- {5 J/ f8 ^5 ^% O\" W( C
- int i,j;
/ a. Y* b0 ~5 @$ T% k5 C1 y- i - int count_A,count_B;
! v6 f( N% I7 W& B% ^ - count_A = count_B = 0;. ~% `7 R4 b2 P9 @* K7 c& W- x' T
- for(i = 0;i<4 ;i++ )
5 e9 ^. y9 S3 k - {
& b: s/ b. i* w9 g- ^ - if(a[i] == b[i]) count_A++;6 f' d) m- ?% Y0 F3 `7 k q\" ~2 _$ L
- }; z6 D/ F+ \, b) w
- 2 T- R9 ~# J8 z% G+ M8 G
- if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
/ o* l, l\" K, H- I' _, { - for(i = 0; i < 4;i ++)+ A$ H: l- K$ c6 H8 {- I8 v& m
- {
2 U\" \& n5 }) {/ X v - for(j = 0;j < 4;j ++)9 D- i0 _% c: B$ A( Y9 u1 _! v
- {6 K8 Q p, c1 p) i3 x
- if(a[j] == b[i]) {count_B++;j = 4;}
$ b% l7 J6 D6 C' x- y$ z' | - }
$ N' A: h7 Z$ Z7 r - }
- _9 o0 G8 L9 O- v) G7 \2 X - printf("%dA%dB\n",count_A,count_B);7 U1 U! C- u. [( D/ R1 M
- return 0;
& I6 \# Z; [\" b/ l* A7 | - }# K6 M2 m, i/ P4 V0 d- y
- void main()//c语言版猜数字游戏
: I' F# W9 n$ a! w4 P+ I6 n - {
6 z1 @$ a; C( Z - int r_num[4];: R3 e1 B5 d+ a9 k2 E
- int input_num[4];
1 Q, I& ]: m) h9 H! M - srand(time(0));$ T+ Y, ] Y6 V
- int j,i = 0,temp1,temp2 = 0;) I. S# F+ f r6 x
- /*********************生成四个随机数***********************/0 h6 V' T1 F! F# c) T0 E2 W
- while(i<4)
7 M4 P+ s+ O* o& B) |4 s - {\" n1 @# k- o% [
- if(i == 0) {r_num[i] = rand()%10;i++;}0 y8 H0 ?, ?. L2 Z/ p
- else9 R: G* }2 Y$ P
- {; e/ O0 d2 Y7 I
- temp1 = rand()%10;
. t& u. U6 R9 a; w1 ]! A! B7 G - for(j=0;j<i;j++); T0 _5 k* ^# ^/ P
- {
% o! l# r1 A; g. z4 v( H$ m - if(temp1 == r_num[j]) temp2++; 8 }! }7 @8 e# t! [. `: p
- }, ?& _3 Z( h\" t4 q8 m8 R# r
- if(temp2 == 0)1 c+ I' k h, f9 j9 B t1 ?
- {
1 c& ^- ?5 Z8 ?# o2 d' S$ ^# P - r_num[i] = temp1;4 r0 s6 C- H1 K
- temp2 = 0;0 N4 I- z0 K g6 J2 u* s) a
- i ++;
: Y# U; H* {4 E# M% z0 ~ - }
2 j2 G2 k7 x7 x6 U - else [- L- L! n% _; e
- {5 T8 B+ C* ^0 ?( ~1 u8 ~1 u6 v
- temp2 = 0;
* G n7 X# U\" g4 v/ w Q, R - continue;
- f\" R6 [/ s* H) w: Q# r5 S - }: L8 W$ I6 Z: m# I. t, J- X
- }
% m: K# F# ~ g1 ] - }
& |0 c9 T7 o\" B9 o( W - for(i = 0;i<4;i++)9 q1 f. g. @+ v6 J
- printf("%d\n",r_num[i]);
/ u0 F2 U4 T. `7 {( y4 k: ? - /************************猜数字游戏核心部分*********************/# w0 _1 p3 V: U2 i
- for(;;)# y! \0 `' Q3 F2 K; k5 b
- {! H; R, W B) q5 y
- scanf("%d",&j);3 t$ G\" `* I, y, E- N& {\" L0 _* a) d
- input_num[0] = j/1000;) _2 ]8 b. M: |4 M6 C$ j
- input_num[3] = j%10;
. p, h8 [* q4 }5 k - input_num[1] = (j - input_num[0]*1000)/100;% `- `1 C\" [2 L! Y2 t2 f+ v1 h
- input_num[2] = (j - input_num[0]*1000 - input_num[1]*100)/10;
. ?2 T9 ]8 ~! B# I- _1 ^, u- k - /********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
: _; H\" t, H% N2 } _ - if(judge(input_num,r_num)==1) break;( x) g4 w$ |# L; D
- else: m0 d5 ]9 u$ d* W9 B
- continue;9 Y }* Z% \6 n( Z0 o# @
- }% |\" B: \! }% @
- }
复制代码 |
zan
|