布尔表达式与if判断
如果condition
的值为真,则执行if
语句块中的代码;否则,执行else
语句块中的代码。
if (condition)
{
// 执行条件为真时的操作
}
else
{
// 执行条件为假时的操作
}
应用
题目一
#include<stdio.h>
int main()
{
int n,flag = 1;
scanf("%d",&n);
for(int y = 0;y < 99;y++)
{
for(int f = 0;f < 99;f++)
{
if(200*y+2*f+n == f*100+y)
{
printf("%d.%d",y,f);
flag = 0;
}
else
{
continue;
}
}
}
if(flag) //(flag)表示flag!=0; (!flag)表示flag=0
{
printf("No Solution");
}
return 0;
}
需要判断的情况:200*y+2*f+n == f*100+y是否有解,若无解,输出No Solution,此时需要布尔值为True,即flag!=0。
令flag=1,若有解,则flag=0,无解,则flag不变,flag=1。
题目二
#include<stdio.h>
#include<math.h>
int main()
{
int n,flag = 0;
scanf("%d",&n);
for(int i = 1;i <= sqrt(n);i++)
{
for(int j = i;j <= sqrt(n);j++)
{
if(i*i+j*j==n)
{
printf("%d %d\n",i,j);
flag = 1;
}
}
}
if(!flag) //(flag)表示flag!=0; (!flag)表示flag=0
{
printf("No Solution\n");
}
return 0;
}
这道题我们换为 if(!flag) 进行判断,需要判断的情况:i*i+j*j==n是否有解,若无解,输出No Solution,此时需要布尔值为True,即 !flag != 0,flag = 0。
令flag=0,若有解,flag=1,若无解,flag不变。