当前位置:首页 » 编程语言 » 猜数字游戏c语言代码

猜数字游戏c语言代码

发布时间: 2022-08-10 02:21:02

① 猜数游戏的c语言编译代码

#include
#include
//随机数生成函数srand()与rand()
所需的头文件
#include
//time()所需的头文件
int
main()
{
int
sysdata;//系统生成的数据
int
n;
//所猜的数据
int
sum
=
0;//记录猜的次数
srand((unsigned)time(null));
//随机数发生器初始化函数,以时间为种子
sysdata
=
rand()%100+1;
//随机生成1到100的随机数
printf("退出程序请按:ctrl
+
c!\n");
while(1)
{
printf("请输入你猜的数据(1-100):
");
if(scanf("%d",&n)
!=
1)
//用于判断用户是否结束游戏
{
break;
//跳出while循环,结束游戏
}
sum++;
//每输入一次数据,猜的次数加1
if(sum
==
10)
//
当猜的次数大于10次的时候重新生成新的随机数
{
if(n
==
sysdata)
//最后一次猜数正确,输出结果,结束游戏
{
printf("猜数正确,总共猜了%d次!\n",sum);
break;
//跳出while循环,结束游戏
}
else
//最后一次猜数不正确则重新开始游戏
{
printf("猜数次数超过%d次,重新开始游戏!\n",sum);
sysdata
=
rand()%100+1;
//随机生成1到100的随机数
sum
=
0;
}
}
else
{
if(n
==
sysdata)
{
printf("猜数正确,总共猜了%d次!\n",sum);//猜数正确,结束游戏
break;
//跳出while循环,结束游戏
}
else
if(n
>
sysdata)
{
printf("你猜的数据太大!\n");
}
else
{
printf("你猜的数据太小!\n");
}
}
}
printf("猜数游戏结束!\n");
return
0;
}
测试结果:
退出程序请按:ctrl
+
c!
请输入你猜的数据(1-100):
50
你猜的数据太小!
请输入你猜的数据(1-100):
75
你猜的数据太小!
请输入你猜的数据(1-100):
85
你猜的数据太大!
请输入你猜的数据(1-100):
80
你猜的数据太小!
请输入你猜的数据(1-100):
82
你猜的数据太小!
请输入你猜的数据(1-100):
84
猜数正确,总共猜了6次!
猜数游戏结束!
press
any
key
to
continue

② c语言,编写一个猜数字游戏

源码如下:

/*File:guess.c*/

#include<stdio.h>/*standardinput&outputsupport*/

#include<stdlib.h>/*srand()rand()*/

#include<time.h>/*time()*/

/*宏定义*/

#defineNUMBER_LENGTH5/*随机数长度*/

#defineNUMBER_LIMIT10/*随机数限制,每一位0-9*/

#defineINPUT_LENTH128/*输入缓冲区大小*/

chargoal[NUMBER_LENGTH]={0};/*保存随机数*/

charflag[NUMBER_LIMIT]={0};/*保存随机数标志,保证不重复*/

charinput[INPUT_LENTH]={0};/*保存输入*/

/*初始化用于保存数据的数组*/

voidinitData()

{

inti=0;

while(i<NUMBER_LENGTH)

goal[i++]=0;

i=0;

while(i<NUMBER_LIMIT)

{

flag[i++]=0;

}

}

/*初始化用于保存缓冲区的数组*/

voidinitBuffer()

{

inti=0;

while(i<INPUT_LENTH)

input[i++]=0;

}

/*显示猜测结果*/

voiddisplay()

{

intcount=0;

inti=0;

while(i<NUMBER_LENGTH)

{

if(input[i]==goal[i])

{

printf("%c",'o');

count++;

}

else

{

printf("%c",'x');

}

i++;

}

printf(" RIGHT:%dbit(s) ",count);

if(count==NUMBER_LENGTH)

{

printf("Youwin!Thenumberis%s. ",goal);

exit(0);

}

}

/*生成随机数*/

voidgeneral()

{

/*以时间作为时间种子保证生成的随机数真正具有随机性质*/

srand((unsignedint)time(NULL));

inti=0;

while(i<NUMBER_LENGTH)

{

chartmp;

do

{

tmp='0'+((i!=0)?(rand()%10):(1+rand()%9));

}while(flag[tmp]!=0);

flag[tmp]=1;

goal[i++]=tmp;

}

}

/*输入方法,用于猜测*/

voidguess()

{

printf(": ");

scanf("%s",input);

display();

initBuffer();

}

/*主函数,程序主框架*/

intmain(intargc,constchar*argv[])

{

initData();

initBuffer();

general();

while(1)guess();

return0;

}

==============================================

运行结果见附图,希望我的回答能够对你有所帮助。

③ 猜数字游戏: 要c语言的代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define menu printf("1:开始游戏!2:查看积分榜!3:输出帮助信息!4:系统设置!0:退出程序!\n")
void sort(int *start, int *end)
{
int *key, *i , *j, temp;
key = start; i = start; j = end;
if(start>=end) return;
while(i != j)
{
while(*j >= *key && j >i) j--; {temp = *j; *j = *key; *key = temp; key = j; }
while(i <j && *i <= *key) i++; {temp = *i; *i = *key; *key = temp; key = i; }
}

sort(start, key-1);
sort(key+1, end);
}
void game(int count, int times)
{
int i, j, f, f1, a[10], b[10], f2, score=100;
FILE *fp;
printf("输入%d个1至9之间不重复的数 中间用空格隔开\n", count);
srand((unsigned)time(NULL));
for(i=0; i<count; i++)
{ a[i]=rand()%10;
while(1)
{
for(j=0, f=1; j<i; j++)
if(a[i]==a[j]) {a[i]=rand()%10; f=0; break;}
if(f) break;
}
}
printf("产生随机数为:");
for(i=0; i<count; i++) printf("%d ", a[i]); printf("\n");
while(times)
{
printf("你还有%d次机会\n", times);

f=0, f1=0, f2=1;
for(i=0; i<count; i++)
if(scanf("%d", &b[i])!=1) { printf("输入格式不正确..你浪费了一次机会\n\n"); f2=0; break;}
if(f2)
for(i=0; i<count; i++)
{ if(f2==0) break;
for(j=i+1; j<count; j++)
if(b[i]==b[j]) { printf("输入有重复..你浪费了一次机会\n\n"); f2=0; break;}
}
if(f2)
{
for(i=0; i<count; i++)
for(j=0; j<count; j++)
if(a[i]==b[j])
if(i==j) f++;
else f1++;
if(f==count) {printf("你蒙对了!!!\n\n"); ; break;}
printf("有%d个数数值和位置都相同! 有%d个数数值相同,但位置不同\n\n", f, f1);
}
times--; score-=10;
fflush(stdin);
}
if(score>0)
{
fp=fopen("dat.txt", "r");
fread(a,sizeof(int),7,fp);
a[7] = score;
sort(a+2, a+7);
for(i=7; i>2; i--) b[9-i]=a[i]; b[0]=a[0]; b[1]=a[1];
fclose(fp);
fp=fopen("dat.txt", "w");
fwrite(b,sizeof(int),7,fp);
fclose(fp);
}

}

void viewrecord()
{
FILE *fp;
int a[7], i;
if((fp=fopen("dat.txt", "r"))==NULL) printf("无记录");
else fread(a,sizeof(int),7,fp);
for(i=2; i<7; i++)
printf("第%d名 %d分\n", i-1, a[i]);
printf("按任意键键退出积分榜\n\n");
fclose(fp);
getchar();
}

void set()
{
int a[7], i;
FILE *fp;
fp=fopen("dat.txt", "r");
fread(a,sizeof(int),7,fp);
printf("修改数字个数\n");
scanf("%d", &a[0]);
printf("修改尝试次数\n");
scanf("%d", &a[1]);
fp=fopen("dat.txt", "w");
i=fwrite(a,sizeof(int),7,fp);
if(i==7) printf("修改成功!\n");
else printf("修改失败\n");
printf("按任意键键回主菜单\n\n");
fclose(fp);
getchar();
}

void main()
{
int a[7], i;
FILE *fp;
char ch;
if((fp=fopen("dat.txt", "r"))==NULL)
{
fp=fopen("dat.txt", "w");
for(i=2; i<7; i++)
a[i]=0; a[0]=4; a[1]=4;
fwrite(a,sizeof(int),7,fp);
fclose(fp);
}
else
fread(a,sizeof(int),7,fp);
printf("1:开始游戏!2:查看积分榜!3:输出帮助信息! 4:系统设置!0:退出程序!\n");
while((ch=getchar())!='0')
switch(ch)
{
case '1' : fp=fopen("dat.txt", "r"); fread(a,sizeof(int),7,fp); fclose(fp); game(a[0], a[1]); menu; break;
case '2' : viewrecord();menu;break;
case '3' : printf("帮助\n"); getchar(); break;
case '4' : set(); menu; break;
default : ;
}

}

④ 猜数字游戏 C语言简单程序代码

#include
#include
#include
#include
int
i,j=1;
int
scores[6];
void
main()
{
char
control='\0';
int
rand1,guess,score;
printf("开始游戏吗
?(y?n)");
control=getchar();
while(control!='y'&&control!='y'&&control!='n'&&control!='n')//屏蔽其他按键
{
printf("无效字符!开始游戏吗
?(y?n)");
fflush(stdin);
control=getchar();
printf("%c",control);
}
while((control=='y')||(control=='y'))
{
system("cls");
srand((unsigned)time(null));
rand1=rand()%10+1;
//printf("%d",rand1);
for(i=0;i<20;i++)
{
printf("请输入你猜的数:");
scanf("%d",&guess);
if(guess>rand1)printf("大啦!\n");
else
if(guess
:猜对了\a\n");//响铃\a
break;
}
i++;
}
i+=1;
if(i==1)
{
score=100;
scores[0]++;
}
else
if(i>=2&&i<=3)
{
score=90;
scores[1]++;
}
else
if(i>=4&&i<=6)
{
score=80;
scores[2]++;
}
else
if(i>=7&&i<=10)
{
score=70;
scores[3]++;
}
else
if(i>=11&&i<=15)
{
score=60;
scores[4]++;
}
else
{
score=0;
scores[5]++;
}
printf("第%d次得分是:%d\n",j,score);
scores[7]+=score;
j++;
printf("是否继续(y?n)\n");
fflush(stdin);//请输入缓冲区
control=getchar();
while(control!='y'&&control!='y'&&control!='n'&&control!='n')
{
printf("无效字符!只能按y或y,n或n是否继续(y?n)\n");
fflush(stdin);
control=getchar();
printf("%c",control);
}
}
system("cls");//清屏
printf("+++++++++++++++-----------------以下是得分情况:---------------*************\n");
for(i=0;i<5;i++)
{
printf("+++++++++++++++------------------得%d分%d次:------------------*************\n",10*(10-i),scores[i]);
}
printf("+++++++++++++++------------------得%d分%d次:------------------*************\n",
0,scores[5]);
}

⑤ C语言编写猜数字游戏

#include<stdio.h>
#include<time.h>
#include<math.h>
int main()
{
int i,a,n;
srand((int)time(NULL));
n=rand()%100+1;
for(i=0; i<5; i++)
{
printf("请输入一个介于1到100的整数:");
scanf("%d",&a);
if(a<n)
printf("猜小了!\n");
if(a>n)
printf("猜大了!\n");
if(a==n)
{
printf("猜对了!\n");
break;
}
}
return 0;
}

⑥ c语言:猜数字游戏代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

intmain()
{
intnum,n,i,cnt=0,finish=0;
srand((unsignedint)time(NULL));
num=rand()%100;
printf("请猜数字,0~100之间 ");
do{
scanf("%d",&i);
cnt++;
if(i<0&&i>=100)
{
printf("GameOver ");
finish=1;
}
elseif(i>num)printf("Toobig ");
elseif(i<num)printf("Toosmall ");
else
{
printf("你用了%d次机会猜中!",cnt);
finish=1;
}

}while(!finish);
return0;
}

⑦ C语言 猜数字游戏

#include<stdio.h>
#include<stdlib.h>

voidmain(){
srand(time(0)); //指定随机数种子
intresult=rand()%1000+1; //产生1~1000的随机数
intguess; //储存猜测的数字

//循环提示输入数字,直到猜测结果正确
do{
printf("请输入猜测的数字 ");
scanf("%d",&guess);
if(guess<result)
{
printf("太低了 ");
}
elseif(guess>result)
{
printf("太高了 ");
}
}
while(guess!=result);

printf("太棒了 ");
}

⑧ c语言猜数字游戏源代码

小游戏2048:

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<time.h>

#include<windows.h>

int jsk( ); //计算空格数

void rsgm( ); //重置游戏

void inkey( ); //按键输入

void left( ); //向左移动

void right( ); //向右移动

void up( ); //向上移动

void down( ); //向下移动

void show( ); //输出界面

void adnum( ); //添加随机数

void yes( ); //游戏是否结束(1是0否)

void gtxy(int x, int y); //控制光标位置的函数

int a[4][4]; //存储16个格子中的数字

int score = 0; //每局得分

int best = 0; //最高得分

int ifnum; //是否需要添加数字(1是0否)

int over; //游戏结束标志(1是0否)

int i,j,k;

int main( )

{ rsgm( ); //重置游戏

inkey( ); //按键输入

return 0;

}

void Color(int a) //设定字符颜色的函数(a应为1-15)

{ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a); }

void rsgm( ) //重置游戏

{ score = 0; ifnum = 1; over = 0; srand((unsigned)time(0)); //启动随机数发生器

int n = rand( ) % 16; //随机函数产生0-15的数字

for (i = 0; i < 4; i++)

{for (j = 0; j < 4; j++)

{ if (n == 0) { int k = rand( ) % 3; if (k == 0 || k == 1) { a[i][j] = 2; }

else { a[i][j] = 4; } n--; }

else { a[i][j] = 0; n--; }

}

}

adnum( );

system("cls");

CONSOLE_CURSOR_INFO gb={1,0}; //以下两行是隐藏光标的设置,gb代指光标

SetConsoleCursorInfo( GetStdHandle(STD_OUTPUT_HANDLE), &gb );

Color(14); //设置字体淡黄色

printf(" 2048小游戏"); Color(7); //恢复白字黑底

printf(" ┌──────┬──────┬──────┬──────┐");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" └──────┴──────┴──────┴──────┘");

show( );

}

void show( ) //输出界面

{ for(i=0;i<4;i++)

for(j=0;j<4;j++)

{ gtxy(7*j+9,2*i+4); //gtxy(7*j+9, 2*i+4)是光标到指定位置输出数字

if(a[i][j]==0){printf(" "); Color(7); printf("│");}

else if(a[i][j]<10){ if (a[i][j] == 2) { Color(14); }

else if (a[i][j] == 4) { Color(13); }

else if (a[i][j] == 8) { Color(12); }

printf(" %d ", a[i][j]); Color(7 ); printf("│");

}

else if (a[i][j] < 100){if (a[i][j] == 16) { Color(12); }

else if (a[i][j] == 32) { Color(10); }

else if (a[i][j] == 64) { Color(2 ); }

printf(" %d ", a[i][j]); Color(7); printf("│");

}

else if (a[i][j] < 1000) {if (a[i][j] == 128) { Color(9); }

else if (a[i][j] == 256) { Color(1); }

else if (a[i][j] == 512) { Color(13); }

printf(" %d ", a[i][j]); Color(7); printf("│");

}

else if (a[i][j] < 10000) {if (a[i][j] == 1024) { Color(5); }

else { Color(15); }

printf(" %d ", a[i][j]); Color(7); printf("│");

}

}

if (jsk( ) == 0)

{ yes( ); if (over) { gtxy(9,12); Color(10);

printf(" 游戏结束!是否继续? [ Y/N ]:"); }

}

}

void inkey( ) //按键输入

{ int key;

while (1)

{ key = getch( );

if (over) { if (key == 89|| key == 121) { rsgm( ); continue; }

else if (key == 78|| key == 110) { return; }

else continue; }

ifnum = 0;

if(key==224)key=getch( );

switch (key)

{ case 75: left( ); break;

case 77: right( ); break;

case 72: up( ); break;

case 80: down( );break;

}

if (score > best) { best = score; }

if (ifnum) { adnum( ); show( ); }

}

}

int jsk( ) //计算空格数

{ int n = 0;

for (i = 0; i < 4; i++)

{ for (j = 0; j < 4; j++) { if ( a[i][j] == 0) {n++;} } }

return n;

}

void left( ) //向左移动

{ for (i = 0; i < 4; i++)

{for (j = 1, k = 0; j < 4; j++)

{ if (a[i][j] > 0)

{ if ( a[i][k] == a[i][j])

{ a[i][k] *= 2; k++;

score = score + 2 * a[i][j];

a[i][j] = 0; ifnum = 1; }

else if ( a[i][k] == 0) { a[i][k] = a[i][j]; a[i][j] = 0; ifnum = 1; }

else { a[i][k + 1] = a[i][j]; if ((k + 1) != j) { a[i][j] = 0; ifnum = 1; }

k++; }

}

}

}

}

void right( ) //向右移动

{for (i = 0; i < 4; i++)

{for (j = 2, k = 3; j >= 0; j--)

{if (a[i][j] > 0)

{ if (a[i][k] == a[i][j])

{a[i][k] *= 2; k--; score = score + 2 * a[i][j]; a[i][j] = 0; ifnum = 1; }

else if ( a[i][k] == 0) {a[i][k] = a[i][j]; a[i][j] = 0; ifnum = 1; }

else { a[i][k - 1] = a[i][j]; if ((k - 1) != j) { a[i][j] = 0; ifnum = 1; } k--; }

}

}

}

}

void up( ) //向上移动

{for (i = 0; i < 4; i++)

{for (j = 1, k = 0; j < 4; j++)

{if (a[j][i] > 0)

{if ( a[k][i] == a[j][i]) { a[k][i] *= 2; k++;score = score + 2 * a[j][i];

a[j][i] = 0; ifnum = 1; }

else if ( a[k][i] == 0) { a[k][i] = a[j][i]; a[j][i] = 0; ifnum = 1; }

else { a[k + 1][i] = a[j][i]; if ((k + 1) != j) { a[j][i] = 0; ifnum = 1; }

k++; }

}

}

}

}

void down( ) //向下移动

{ for (i = 0; i < 4; i++)

{for (j = 2, k = 3; j >= 0; j--)

{if (a[j][i] > 0)

{if (a[k][i] == a[j][i])

{a[k][i] *= 2; k--;score = score + 2 * a[j][i]; a[j][i] = 0; ifnum = 1; }

else if (a[k][i] == 0) {a[k][i] = a[j][i]; a[j][i] = 0; ifnum = 1; }

else {a[k - 1][i] = a[j][i];

if ((k - 1) != j) {a[j][i] = 0; ifnum = 1; } k--; }

}

}

}

}

void adnum( ) //添加随机数

{ srand(time(0)); int n = rand( ) % jsk( );

for (int i = 0; i < 4; i++)

{for (int j = 0; j < 4; j++)

{ if (a[i][j] == 0) {if (n != 0) { n--; }

else {int k = rand( ) % 3;

if (k == 0 || k == 1) {a[i][j] = 2; return; }

else {a[i][j] = 4; return; } }

}

}

}

}

void yes( ) //游戏是否结束

{ for (int i = 0; i < 4; i++)

{for (int j = 0; j < 3; j++)

{if (a[i][j] == a[i][j + 1] || a[j][i] == a[j + 1][i]) {over = 0; return; }}

}

over = 1;

}

void gtxy(int x, int y) //控制光标位置的函数

{ COORD zb; //zb代指坐标

zb.X = x;

zb.Y = y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), zb);

}

⑨ C语言中猜数字的代码

再定义两个变量,在游戏说明后面套个while循环,条件你想要退出输入的键例如:(x=='y')继续游戏,否者退出!至于统计次数在选者外套用一个for循环语句,在答对的情况下i 自增最后输出i的值就可以了!

⑩ c语言编程,编译猜数字游戏

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
void main()/*主函数*/
{
int a,b,times=0,i,j,guess=0,answer[5],g[5];
for(i=0;i<5;i++)/*随即产生5个数*/
{
srand((unsigned int)time(NULL));/*以当前时间为种子*/
answer[i]=rand()%9+1;/*保证为1-9的数,rand产生随即0-65535的数,对9取余为0-8,都加1就是1-9了*/
for(j=0;j<i;j++)
while(answer[i]==answer[j])/*检查有没有重复的数据,有就重新生成*/
{
answer[i]=rand()%9+1;
j=-1;/*新生成的数要重新检查,此步后马上执行j++*/
}
}
printf("随即的5个数是:");
for(i=0;i<5;i++)
printf("%d",answer[i]);/*输出结果到屏幕,便于测试*/
printf("\n");
printf("请输入猜测数字:\n%");
a=0;
while(a!=5)/*a记录位置对并且数也对的,如果5个都对就是猜对了*/
{
a=0;
b=0;/*b记录数是有的,但位置不对的个数*/
times++;
printf("第 %d 次猜测:\t",times);
scanf("%d",&guess);
while(guess<12345||guess>99999)/*如果猜的数超过这个范围就是瞎猜的,肯定不对,再来一次*/
{
printf("你输入了一个非常规数据,请重新输入:\t");
scanf("%d",&guess);
}
for(i=4;i>-1;i--)/*把玩家猜的5个数放到数组中,便于检查对错*/
{
g[i]=guess%10;
guess=(guess-g[i])/10;
}
for(i=0;i<5;i++)/*检查数据对错*/
{
for(j=0;j<5;j++)
{
if(g[i]==answer[j])/*如果猜得的数与结果的某个数一样就把b加1*/
{
b++;
if(i==j)/*如果位置也对,那就是a加1了,对应的b已经加过,应该减1*/
{
a++;
b--;
}
}
}
}
printf("猜测结果:%dA%dB\n",a,b);
if(a==5)
printf("\t答案正确\n"); /*如果a=5就是猜对了*/
}
}

热点内容
ta栅格算法 发布:2024-05-07 07:03:23 浏览:802
符号源码 发布:2024-05-07 06:26:09 浏览:707
玩hypixel服务器ip地址要什么版本 发布:2024-05-07 06:22:50 浏览:62
代码为什么要编译 发布:2024-05-07 06:22:48 浏览:495
java面试复习 发布:2024-05-07 06:01:15 浏览:658
suftp 发布:2024-05-07 06:00:40 浏览:880
编程的tr 发布:2024-05-07 05:37:25 浏览:423
苹果4s的数据怎么备份到安卓上 发布:2024-05-07 05:37:15 浏览:819
安卓怎么注册电邮 发布:2024-05-07 05:23:49 浏览:715
怎么看清被涂鸦的内容安卓手机 发布:2024-05-07 05:16:52 浏览:703