求C语言程序注释。,帮忙看看一会答辩

#include<stdio.h>#include<time.h>#include<stdlib.h>intmain(){intstime,a,z,t,i,c,m,g,s... #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];
long ltime;
ltime=time(NULL);
stime=(unsigned int)ltime/2;
srand(stime);
z=random(9999);
printf("I have a number with 4 digits in mind,please guess.\n");
for(c=1;;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++)
{
s=g;m=1;
for(t=1;t<5;t++)
{
if(a%10==s%10)
{
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++;
}
s/=10;
}
a/=10;
}
printf("You hane correctly guessed %d digits,\n",j);
printf("and correctly guessed %d digits in exact position.\n",k);
if(k==4) break;
}
printf("Now you have correctly guessed the whole number after %d times.\n",c);
}

请各位高手帮我用注释的形式标注出每句话的意思和作用啊!!
后天答辩啊…………救急啊……
人机猜数游戏
计算机想出一个四位数人猜,计算机给出猜对几个数猜对几个位置,直到猜对,记录猜测次数…………
展开
 我来答
匿名用户
2009-07-01
展开全部
原程序有点问题,不能保证生成的一定是4位的随机数,已帮你改进并注释如下:
/*猜数游戏改进版 dev-c++下验证通过*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main()
{
int rdigit,rdigit1,num,num1,count,flag;
int i,j,k,t,l[4]; /*j:数字正确的位数 k:位置正确的位数*/
/*l[]:数字相同时,人所猜中数字的正确位置*/
srand((unsigned int)time(NULL));
rdigit=1000+rand()%9000; /*计算机想一个四位随机数*/

printf("The number is: %d\n",rdigit); /*这就是计算机想的数,这一行可以去掉*/

printf("I have a number with 4 digits in mind,please guess it.\n\n");
for(count=1;;count++) /*count: 猜数次数计数器*/
{
printf("Enter a number with 4 digits:");
scanf("%d",&num); /*请人猜*/
rdigit1=rdigit;
j=0;
k=0;
l[0]=l[1]=l[2]=l[3]=0;
for(i=1;i<5;i++) /*i:原数中的第i位数。个位为第一位,千位为第4位*/
{
num1=num;
flag=1;
for(t=1;t<5;t++) /*人所猜想的数*/
{
if(num1%10==rdigit1%10) /*若人猜的第t位与计算机想的第i位相同*/
{
if(flag&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3])
{
j++;flag=0;l[j-1]=t; /*若该位置上的数字尚未与其它数字“相同”*/
} /*记录相同数字时,该数字在所猜数字中的位置*/

if(i==t) k++; /*若位置也相同,则计数器k加1*/
}
num1/=10;
}
rdigit1/=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",count);

system("pause");
return 0;
}
祈拉之祈
2009-07-01 · TA获得超过1541个赞
知道大有可为答主
回答量:1802
采纳率:0%
帮助的人:2514万
展开全部
#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];
long ltime;
ltime=time(NULL); // 计时 ctime
stime=(unsigned int)ltime/2;
srand(stime);
z=random(9999); // 随机
printf("I have a number with 4 digits in mind,please guess.\n");
for(c=1;;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++)
{
s=g;m=1;
for(t=1;t<5;t++)
{
if(a%10==s%10) // 如果十位相同
{
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++;
}
s/=10; // 去个位
}
a/=10;
}
printf("You hane correctly guessed %d digits,\n",j);
printf("and correctly guessed %d digits in exact position.\n",k);
if(k==4) break; // k表示猜对的数字个,4时 都正确
}
printf("Now you have correctly guessed the whole number after %d times.\n",c);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
占衍湛盼芙
2019-11-10 · TA获得超过3904个赞
知道大有可为答主
回答量:3158
采纳率:32%
帮助的人:166万
展开全部
原程序有点问题,不能保证生成的一定是4位的随机数,已帮你改进并注释如下:
/*猜数游戏改进版
dev-c++下验证通过*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int
main()
{
int
rdigit,rdigit1,num,num1,count,flag;
int
i,j,k,t,l[4];
/*j:数字正确的位数
k:位置正确的位数*/
/*l[]:数字相同时,人所猜中数字的正确位置*/
srand((unsigned
int)time(NULL));
rdigit=1000+rand()%9000;
/*计算机想一个四位随机数*/
printf("The
number
is:
%d\n",rdigit);
/*这就是计算机想的数,这一行可以去掉*/
printf("I
have
a
number
with
4
digits
in
mind,please
guess
it.\n\n");
for(count=1;;count++)
/*count:
猜数次数计数器*/
{
printf("Enter
a
number
with
4
digits:");
scanf("%d",&num);
/*请人猜*/
rdigit1=rdigit;
j=0;
k=0;
l[0]=l[1]=l[2]=l[3]=0;
for(i=1;i<5;i++)
/*i:原数中的第i位数。个位为第一位,千位为第4位*/
{
num1=num;
flag=1;
for(t=1;t<5;t++)
/*人所猜想的数*/
{
if(num1%10==rdigit1%10)
/*若人猜的第t位与计算机想的第i位相同*/
{
if(flag&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3])
{
j++;flag=0;l[j-1]=t;
/*若该位置上的数字尚未与其它数字“相同”*/
}
/*记录相同数字时,该数字在所猜数字中的位置*/
if(i==t)
k++;
/*若位置也相同,则计数器k加1*/
}
num1/=10;
}
rdigit1/=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",count);
system("pause");
return
0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式