猜数字游戏
一、问题描述:该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A表示位置正确且数字正确,B表示数字...
一、问题描述:
该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。
二、功能要求:
1、本游戏显示这样的菜单:
(1) 随机产生数据
(2) 用户输入数据
(3) 退出游戏
2、游戏成功与否都能返回主菜单
三、算法提示:
1、 数据结构:数组
2、 用简单的程序设计方法
四、测试数据:
测试数据: 3792
第一次输入: 1234
0A2B
第二次输入: 5678
0A1B
第三次输入: 0867
0A1B
第四次输入: 9786
1A1B
第五次输入: 1794
2A0B
第六次输入: 2793
2A2B
第七次输入: 3792
4A0B
游戏成功!!!
五、其它:
对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。
①完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。②完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。③完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。④调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。
就是每句后有注释 展开
该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。
二、功能要求:
1、本游戏显示这样的菜单:
(1) 随机产生数据
(2) 用户输入数据
(3) 退出游戏
2、游戏成功与否都能返回主菜单
三、算法提示:
1、 数据结构:数组
2、 用简单的程序设计方法
四、测试数据:
测试数据: 3792
第一次输入: 1234
0A2B
第二次输入: 5678
0A1B
第三次输入: 0867
0A1B
第四次输入: 9786
1A1B
第五次输入: 1794
2A0B
第六次输入: 2793
2A2B
第七次输入: 3792
4A0B
游戏成功!!!
五、其它:
对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。
①完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。②完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。③完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。④调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。
就是每句后有注释 展开
10个回答
展开全部
一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过。
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int stime,a,z,t,i,c,m,g,s,j,k,l[4]; /*j:数字正确的位数 k:位置正确的位数*/
long ltime;
ltime=time(NULL); /*l:数字相同时,人所猜中数字的正确位置*/
stime=(unsigned int)ltime/2;
srand(stime);
z=random(9999); /*计算机想一个随机数*/
printf("I have a number with 4 digits in mind,please guess.\n\n");
for(c=1;;c++) /*c: 猜数次数计数器*/
{
printf("Enter a number with 4 digits:");
scanf("%d",&g); /*请人猜*/
a=z;j=0;k=0;l[0]=l[1]=l[2]=l[3]=0;
for(i=1;i<5;i++) /*i:原数中的第i位数。个位为第一位,千位为第4位*/
{
s=g;m=1;
for(t=1;t<5;t++) /*人所猜想的数*/
{
if(a%10==s%10) /*若第i位与人猜的第t位相同*/
{
if(m&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3])
{
j++;m=0;l[j-1]=t; /*若该位置上的数字尚未与其它数字“相同”*/
} /*记录相同数字时,该数字在所猜数字中的位置*/
if(i==t) k++; /*若位置也相同,则计数器k加1*/
}
s/=10;
}
a/=10;
}
printf("Correctly guessed %d digits,",j);
printf("and guessed %d digits in exact position.\n\n",k);
if(k==4) break; /*若位置全部正确,则人猜对了,退出*/
}
printf("Now correctly guessed the whole number after %d times.\n",c);
}
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int stime,a,z,t,i,c,m,g,s,j,k,l[4]; /*j:数字正确的位数 k:位置正确的位数*/
long ltime;
ltime=time(NULL); /*l:数字相同时,人所猜中数字的正确位置*/
stime=(unsigned int)ltime/2;
srand(stime);
z=random(9999); /*计算机想一个随机数*/
printf("I have a number with 4 digits in mind,please guess.\n\n");
for(c=1;;c++) /*c: 猜数次数计数器*/
{
printf("Enter a number with 4 digits:");
scanf("%d",&g); /*请人猜*/
a=z;j=0;k=0;l[0]=l[1]=l[2]=l[3]=0;
for(i=1;i<5;i++) /*i:原数中的第i位数。个位为第一位,千位为第4位*/
{
s=g;m=1;
for(t=1;t<5;t++) /*人所猜想的数*/
{
if(a%10==s%10) /*若第i位与人猜的第t位相同*/
{
if(m&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3])
{
j++;m=0;l[j-1]=t; /*若该位置上的数字尚未与其它数字“相同”*/
} /*记录相同数字时,该数字在所猜数字中的位置*/
if(i==t) k++; /*若位置也相同,则计数器k加1*/
}
s/=10;
}
a/=10;
}
printf("Correctly guessed %d digits,",j);
printf("and guessed %d digits in exact position.\n\n",k);
if(k==4) break; /*若位置全部正确,则人猜对了,退出*/
}
printf("Now correctly guessed the whole number after %d times.\n",c);
}
展开全部
把题简单话下:
3个住店人员掏了30,老板让小儿还5快回去,小二拿了2块,还了3块。
最后:老板那有25块,
小二那有2块,
住店人员那有3块。
刚开始住店人员掏的30元=老板那的25元+小二那的2元+住店人最后剩的3元
住店人员实际掏的27元=老板那的25元+小儿那的2元
你最后说的那个29元=老板那的25元+小二那的2元+小二那的2元
最后消失的1元=刚开始住店人员掏的30元-老板那的25元-(小二那的2元+小二那的2元)
括号里面的注意下↗
小二的2元算了2遍,所以这个题没有意义。
最后再拐回来:
老板实际收的25元+小二私吞的2元+住店人剩下的3元=30元
结论:
钱根本就没有少,这个丢失的1元也就不存在了。
3个住店人员掏了30,老板让小儿还5快回去,小二拿了2块,还了3块。
最后:老板那有25块,
小二那有2块,
住店人员那有3块。
刚开始住店人员掏的30元=老板那的25元+小二那的2元+住店人最后剩的3元
住店人员实际掏的27元=老板那的25元+小儿那的2元
你最后说的那个29元=老板那的25元+小二那的2元+小二那的2元
最后消失的1元=刚开始住店人员掏的30元-老板那的25元-(小二那的2元+小二那的2元)
括号里面的注意下↗
小二的2元算了2遍,所以这个题没有意义。
最后再拐回来:
老板实际收的25元+小二私吞的2元+住店人剩下的3元=30元
结论:
钱根本就没有少,这个丢失的1元也就不存在了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#
include
#
include
#
include
main()
{
int
a,b;
char
c;
srand(time(NULL));
a=1+(rand()%1000);
printf("I
have
a
number
between
1
and
1000.\nCan
you
guess
my
number?\nPlease
type
your
first
guess.\n");
scanf("%d",&b);
while(b!=-1)
{
if(b==a)
{
printf("Excellent!
You
guessed
the
number!\nWould
you
like
to
play
again(y
or
n)?");
scanf("%c",&c);
scanf("%c",&c);
switch(c){
case
'y':
printf("I
have
a
number
between
1
and
1000.\nCan
you
guess
my
number?\nPlease
type
your
first
guess.\n");
scanf("%d",&b);
break;
case
'n':
break;
}
}
while(b
a)
{
printf("Too
high.Try
again.");
scanf("%d",&b);
}
}
}
include
#
include
#
include
main()
{
int
a,b;
char
c;
srand(time(NULL));
a=1+(rand()%1000);
printf("I
have
a
number
between
1
and
1000.\nCan
you
guess
my
number?\nPlease
type
your
first
guess.\n");
scanf("%d",&b);
while(b!=-1)
{
if(b==a)
{
printf("Excellent!
You
guessed
the
number!\nWould
you
like
to
play
again(y
or
n)?");
scanf("%c",&c);
scanf("%c",&c);
switch(c){
case
'y':
printf("I
have
a
number
between
1
and
1000.\nCan
you
guess
my
number?\nPlease
type
your
first
guess.\n");
scanf("%d",&b);
break;
case
'n':
break;
}
}
while(b
a)
{
printf("Too
high.Try
again.");
scanf("%d",&b);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、
旭日东升(打一数字)
九
2、
国家元首当会计(打一数学名词)
统计
3、
垂钓。(打一数学名词)。等于
4、
带眼镜的数。(打一种数)。
8
旭日东升(打一数字)
九
2、
国家元首当会计(打一数学名词)
统计
3、
垂钓。(打一数学名词)。等于
4、
带眼镜的数。(打一种数)。
8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一种算法:三人各9元,共27,小二2元,店主25正好。二种做法:三人各10元,店主25,小二2,三人3,此题不能按题中方法计算。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询