C语言的&&问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:06:00
程序如下:
#include "math.h"/*声明该主程序调用数学函数库*/
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{ x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("\n%ld\n",i);
}
}

有一个问题,为什么在if(x*x==i+100&&y*y==i+268)中要加&&?

本人初学,希望耐心人士指点迷津

这个程序是求一个数
这个数满足1.加上100后是完全平方数...2.加上268后还是完全平方数
这个数应该同时满足这两个条件
所以要用..&&..逻辑与运算符
a&&b,只有在a,b同时为真是,a&&b才为真
所以 if(x*x==i+100&&y*y==i+268) ,就是判断是否同时满足这两个条件的

&&的意思是“并且”的意思,
如果x的平方等于i+100,并且y的平方等于i+268,条件才满足。

条件“与”运算符 (&&) ,表示两者同时成立

就是说这个if语句中要&&两边的等式都成立才有效。