我必须编写一个关于斐波那契数列的程序。该程序应该有两个功能。一项功能用于读取用户输入,一项功能用于打印斐波那契数列以及打印了多少个数字(序列的长度)。另外,打印斐波那契数列的函数应该定义一个参数来接受用户输入。
这是我的程序,请帮我检查一下并帮助我完成程序的其余部分:
#include <stdio.h>
#include <stdlib.h>
int Fibonacci(int);
int main()
{
int num;
printf("enter a number:\n");
scanf("%d",&num);
if (num < 0) {
printf("invalid user input, enter a positive number\n");
} else {
Fibonacci(num);
}
return 0;
}
int Fibonacci(int num)
{
int num1 = 0;
int num2 = 1;
int totalNum = 2;
int next;
printf ("%d,%d", num1, num2);
next = num1 + num2;
while (next <= num)
{
printf(",%d", next);
num1 = num2;
num2 = next;
next = num1 + num2;
}
}
最佳答案
对于在函数中打印多少个数字,只需采用一个变量计数器并将其初始化为 2(预先计算的)counter=2
,然后在 while 循环内继续递增它
像这样的东西
fabonacci(....)
{
.
//rest of code
//
counter=2;
while (next <= num)
{
printf(",%d", next);
num1 = num2;
num2 = next;
next = num1 + num2;
++counter;
}
printf("\n%d\n",counter);
}
关于c - 我正在尝试编写一个在 C 中定义为参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33184409/