求解以下语句的意思,请问while(flag==0)是什么意思,是关于c语言的问题?

帮忙翻译下
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);
}

紫衣仙女
浏览 681回答 2
2回答

Smart猫小萌

这是while语句;形式是:while(一个值或一个表达式)//*如果这个值,或表达式的值不是0,那么执行下面程序{执行的任务;}如果表达式的值是0,那么停止循环*//这是一个循环如果flag是0那么停止循环,如果flag非0继续循环;

梵蒂冈之花

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;}}}
打开App,查看更多内容
随时随地看视频慕课网APP