C语言实验报告猜数字游戏

实验报告———猜数字游戏

一、实验内容:

实验名称:猜数字游戏

实验目的:猜数:用户从键盘输入4位不重复的数,来匹配计算机给出的4位随机数,若数字和位数均等同,表示用户赢了。每猜一次,计算机均给出提示信息(x,y),x表示数字、位置都匹配的个数,y表示数字匹配但位置不匹配的个数。 实验要求:

(1) 设计友好的中文交互界面。

(2) 按H键,可以得到更详细的帮助信息,如:第1位数字正确,第2,

3位数字位置不对等。

(3) 按K键后,可以查看计算机所给的4位数,但查看前需要输入密码,

密码自定。

(4) 猜的结果以分值的形式给出,每猜错1次扣100分,若猜对1个数,

奖励20分。

(5) 每次游戏结束后将分值存盘,文件名自定。

二、算法说明:

S1:计算机随机数通过宏定义来实现(本次设计为20xx)

S2:开始主函数,设计一个简单的中文界面

S3:定义stime,a,z,t,i,c,m,g,s,j,k等整型变量,其中k表示数字、位置都匹配

的个数,j表示数字匹配但位置不匹配的个数。

S4:将用scanf函数出入的四位数与计算机随机数比较

S5:用print函数输出比较结果,每次比较都有提示,并记录次数

S6:当完全猜中数字时,用户获得胜利,游戏结束

三、程序清单;

#include<stdio.h>

#include<time.h>

#include<stdlib.h>

#define COUNT 20xx /*宏定义一个计算机内定数,可由编程者修改*/

void 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=COUNT; /*计算机内定数*/

printf(" 欢迎进入猜数字游戏\n");

printf(" 游戏帮助\n");

printf("用户从键盘输入一个4位数,来匹配计算机内定的4位随机数,若数字和位数均等同,表示用户赢了。\n");

printf("每猜一次,计算机均给出提示信息(k,j),k表示数字、位置都匹配的个数,j表示数字匹配但位置不匹配的个数。\n");

for(c=1;;c++) /*c: 猜数次数计数器*/

{

printf("请输入你猜的数字:");

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("提示信息(%d,%d)\n",k,j);

printf("你猜对了%d个数字!\n",j);

printf("其中位置也正确的有 %d 个.\n",k);

if(k==4) break; /*若位置全部正确,则人猜对了,退出*/

else printf("请继续努力!\n");

}

printf("经过 %d 次努力,你已经猜中了全部的数字,恭喜你.\n",c);

}

四、运行结果:

原始界面:

欢迎进入猜数字游戏

游戏帮助

用户从键盘输入一个4位数,来匹配计算机内定的4位随机数,若数字和位数均等同,表示用户赢了。

每猜一次,计算机均给出提示信息(k,j),k表示数字、位置都匹配的个数,j表示数字匹配但位置不匹配的个数。

请输入你猜的数字:

例: a)输入 2776

输出

提示信息(1,1)

对了1个数字!

位置也正确的有1个

请继续努力!

b)再次输入2805

输出:

提示信息(2,3)

对了3个数字!

位置也正确的有2个

请继续努力!

c)再次输入20xx

输出:

提示信息(4,4)

对了4个数字!

位置也正确的有4个

经过3 次努力,你已经猜中了全部的数字,恭喜你

d)按任意键安全退出

五、分析与思考:由于水平有限,这个程序我做得比较简单,例如随机取数用宏定义实现,帮助是直接显现在菜单的,提示也会在每一次猜数后自动给出,记录了次数但没有记入分数。。。但我还是实现了一些基本功能,如数的随机和结果的提示,希望再接再厉,下次做的更好。

 

第二篇:c语言实验报告

学号:__________ 姓名:__________ 班级:__________日期:__________

指导教师:__________ 成绩:__________

实验一 上机操作初步和简单的C程序设计

一、 实验目的

1、熟悉C语言运行环境Turbo C++3.0

2、会简单的程序调试

3、熟悉C语言各种类型数据的输入输出函数的使用方法

4、掌握顺序结构程序设计

二、 实验内容

1、 上机运行本章3个例题,熟悉所用系统的上机方法与步骤。(习题1.7)

2、 编写一个C程序,输入a、b、c 3个值,输出其中最大者。(习题1.6)

3、 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。注意:在Trubo C++ 3.0中不能输入汉字,只能输入英文或拼音。(习题4.8)

4、 运行如下程序,写出运行结果。fanwen.glzy8.comwww.glzy8.com整理该文章,版权归原作者、原出处所有...

#include

void main()

{

int a=1,b=2;

a=a+b; b=a-b; a=a-b;

printf("%d,%d\n",a,b);

}

三、 实验步骤与过程

四、程序调试记录

相关推荐