关于人机猜数程序的疑问!!

来源:百度知道 编辑:UC知道 时间:2024/05/23 00:31:05
一下是我改动后的程序,但其中还有一点不明白,希望各位能帮帮我!
在程序中有一句:m&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3],哪位能解释一下这句的意思和作用么?还有程序中的m是起什么作用的啊!
谢谢各位好心人了!!!
int game() /*游戏程序*/
{
int stime,c,i,g,a,j,k,l[4],n,m,b,t; /*c:计算机随机产生的数 g:人猜的数字 j:数字正确的位数,k:位置正确的位数*/
long ltime;
ltime=time(NULL); /*l:数字相同时,人所猜中数字的正确位置*/
stime=(unsigned int)ltime/2;
srand(stime);
c=random(9999); /*计算机随机猜想的数限制在四位数*/
printf("I give you a number,please guess it.\n");
for(i=1;;i++)
{
printf("Now enter the number that you guess:");
scanf("%d",&g); /*输入猜的数*/
a=c;j=0;k=0;l[0]=l[1]=l[2]=l[3]=0;
for(n=1;n<5;n++) /*n:原数中的第n位数,个位为第一位,千位为第4位*/
{
b=g;m=1;
for(t=1;t<5;t++)

m&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3]

这是个条件判断语句, m 是int型的,在c中,int型为0时为假
&& 是并且的意思, 连接前后的判断
!= 是不等于
l[0] l 是数组 l[0]是数组中的第一个,数组索引是从0开始的

m 在这里面是用来表示一种状态,其实用 bool 比较好