| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 505 人关注过本帖
标题:[分享]自己实现的猜数字游戏;
只看楼主 加入收藏
sgliang1988
Rank: 1
来 自:西安
等 级:新手上路
帖 子:45
专家分:0
注 册:2007-9-20
收藏
 问题点数:0 回复次数:2 
[分享]自己实现的猜数字游戏;
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void input(int *b);
void panduan(int *a,int *b,int *x,int *y);
void output(int count,int *a);
void main()
{
int a[4],b[4];
int i,j,x,y;
int count=0;
srand((unsigned)time(NULL));
for(int k=0;k<4;k++)
{
a[k]=rand()%10;
printf("%d", a[k]);
}
printf("\n");
do
{
x=0;
y=0;
i=0;
j=0;
input(b);
panduan(a,b,&x,&y);
printf("%dA%dB\n",x,y);
count++;
}while(x != 4 && count <10);
output(count,a);

}
void input(int *b)
{
int num;
printf("请输入1个四位数: ");
scanf("%d",&num);
for(int i=0;i<4;i++)
{
b[3-i]=num%10;
num=num/10;
}
}
void panduan(int *a,int *b,int *x,int *y)
{
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if( a[i]==b[i] )
{
(*x)++;
b[i] = -1;
break;
}
else if(a[i]==b[j])
{
(*y)++;
break;
}
}
}
}
void output(int count,int *a)
{
if( count<10 )
printf("恭喜你猜对了,你猜了%d次\n", count);
else
{
printf("很遗憾你没才对,正确地数字为:");
for(int k=0;k<4;k++)
{
printf("%d", a[k]);
}
printf("\n");
}
}

希望和大家一起交流交流!
搜索更多相关主题的帖子: 数字 游戏 分享 
2007-10-28 23:55
devfhpgah
Rank: 1
来 自:江西
等 级:新手上路
帖 子:204
专家分:0
注 册:2007-8-16
收藏
得分:0 

编译不能通过呀,你用的是什么编译器呀,好像要支持C99


努力才会成功!
2007-10-29 08:24
deamonhdb
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-10-7
收藏
得分:0 

试了下,还不错
但是发现还是不够完美,随机到的四个数可能某两位或三位甚至四位是相同的,而当猜数时把重复数猜到了,而程序提示的是1B而不是2B,所以希望楼主把边界条件优化下,或者只产生四位都不同的随机数,就不会出现这个问题了

2007-10-29 14:46
快速回复:[分享]自己实现的猜数字游戏;
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.092410 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved