c语言中while(flag==0)什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/07 07:15:47
帮忙翻译下
int f1=0,f2=1,flag=0;
while(flag==0)
{ f1=f1+f2;
f2=f2+f1;
if(t>=f1&&t<=f2)
{ flag=1;
return f2;}
}
}
/* 程序设计题:求Fibonacci数列中大于t的最小一个数结果由函数JSValue返回,F(n)定义为F(0)=0,F(1)=1,F(n)=F(n-1)+ F(n-2),分别计算出当t=1000和3000时的结果*/
#include<stdio.h>
int JSValue(int t)
{ /*考生在这里添加代码*/
int f1=0,f2=1,flag=0;
while(flag==0)
{ f1=f1+f2;
f2=f2+f1;
if(t>=f1&&t<=f2)
{ flag=1;
return f2;}
}
}
void main()
{ FILE *p;
p=fopen(“design.dat”,”w”);
fprintf(p,”%d,%d”, JSValue(1000),JSValue(3000));
fclose(p);
}

flag 是 一个标记变量

if(t>=f1&&t<=f2)如果这条语句没有符合条件,那么循环就可以继续下去,即运算F(n)=F(n-1)+ F(n-2).

if(t>=f1&&t<=f2)符合条件,那么flag = 1.则跳出循环.因为已经找到符合条件的f2了.

其实完全没有必要flag.return 语句直接控制跳出这个函数了

int JSValue(int t)
{ /*考生在这里添加代码*/

int f1=0,f2=1;
while(1)
{ f1=f1+f2;
f2=f2+f1;
if(t>=f1&&t<=f2)
{
return f2;}
}
}

详解如下:
1、while用于循环。
2、当while后面的括号里面的条件为真的时候,继续循环执行。
3、当while后面的括号里面的条件为假的时候则终止循环。
4、while(flag==0)就是当flag的值等于0的时候,循环继续,如果flag的值不等于0,则不会循环。

flag为一个变量,当flag不等于零时,结束循环

当flag==0的时候,执行循环
while(flag)和while(flag==0)的意思是相反的
while(flag==0)和while(!flag)等价

判断变量flag是否为0,是则进行循环。