以下代码使用Do While函数生成Fibonacci数,而不是指定退出条件的确切数,而(b <144)我想要不那么精确,只是让它不显示更大的数字一个特定的值(比方说150)。 我该怎么做? 请注意,我只知道基本功能。
int main()
{
int a;
int b = 0;
int c = 1;
printf("the fibonacci numbers up to 144 are:\n");
printf("%i", b);
do
{
a = c+b;
printf("\n%i", a);
c = a+b;
printf("\n%i", c);
b = c+a;
printf("\n%i", b);
}
while (b < 144);
return 0;
}
答案 0 :(得分:1)
我不确定您打算“按需”。如果您的意思是按需代码,则可以使用内部if
,如果条件为true,则使用break命令退出循环。链接URL提取的示例:
for (i = 0; i < 5; i++) {
if (string[i] == '\0')
break;
length++;
}
如果 on demand 表示“一旦你想要停止它”,那么使用你在控制台应用程序中的CTRL+C
个。
编辑:由于您的功能已经退出命令,您可能想知道“如何在控制台应用程序中读取标准输入?” 答:使用scanf函数(这里是一个例子):
#include <stdio.h>
int main() {
int n;
printf("Insert the value of N: ");
scanf ("%d",&n);
printf("N*N is equal to: %d\n", n*n);
getch();
}
答案 1 :(得分:0)
你可能想要使用类似的东西:
while (a < MAX_VALUE && b < MAX_VALUE && c < MAX_VALUE)
其中MAX_VALUE是包含(http://gcc.gnu.org/onlinedocs/cpp/Macros.html#Macros)之后程序开头的预处理器宏,例如:
#define MAX_VALUE 100000
答案 2 :(得分:0)
您可以输入您希望系列的编号的限制。
int n;
printf("Enter the limit: ");
scanf("%d", &n);
printf("\nthe fibonacci numbers up to %d are:\n", n);
printf("%i", b);
do
{
...
n--;
}
while (n);
答案 3 :(得分:0)
解决它:在每次添加后添加用户指定的限制和if语句进行检查: 谢谢你的帮助!
float lim;
int a;
int b = 0;
int c = 1;
printf("The following program generates Fibonacci numbers up to a specified value\n");
printf("Please enter a value of your choise:");
scanf("%f4", &lim);
printf("the fibonacci numbers up to %.2f are:\n", lim);
printf("%i", b);
do
{
a = c+b;
c = a+b;
b = c+a;
if ( a >= lim) break;
printf("\n%i", a);
if ( c >= lim) break;
printf("\n%i", c);
if ( b >= lim) break;
printf("\n%i", b);
}
while(b <= lim);