带C的Fibonacci函数
我想计算斐波那契序列的第I个句子:带C的Fibonacci函数,c,function,integer,switch-statement,fibonacci,C,Function,Integer,Switch Statement,Fibonacci,我想计算斐波那契序列的第I个句子: #include <stdio.h> int fibo(int i); int main() { return 0; } int fibo(int i) { switch (i) { case 1: return 0; break; case 2: return 1; break; default: int a =
#include <stdio.h>
int fibo(int i);
int main()
{
return 0;
}
int fibo(int i)
{
switch (i)
{
case 1:
return 0;
break;
case 2:
return 1;
break;
default:
int a = 0, b = 1;
for (int p = 3; p <= i; p++)
{
b += a;
a = b - a;
}
return b;
break;
}
}
我在IDE中使用VS代码。#包括
#include <stdio.h>
int fibo(int i);
int main()
{
return 0;
}
int fibo(int i)
{
int a = 0, b = 1;
switch (i)
{
case 1:
return a;
break;
case 2:
return b;
break;
default:
for (int p = 3; p <= i; p++)
{
b += a;
a = b - a;
}
return b;
break;
}
}
intfibo(inti);
int main()
{
返回0;
}
int fibo(int i)
{
INTA=0,b=1;
开关(一)
{
案例1:
返回a;
打破
案例2:
返回b;
打破
违约:
对于C中的(int p=3;p,在switch
语句中,在case
中,要有局部变量,case
的主体必须用大括号“{”和“}”括起来“C语法不允许标记声明。默认值:
和大小写:
是标签。有3种方法可以解决代码中的问题:
- 将声明移到
开关的主体之外
语句:
int fibo(int i) {
int a, b;
switch (i) {
case 1:
return 0;
case 2:
return 1;
default:
a = 0, b = 1;
for (int p = 3; p <= i; p++) {
b += a;
a = b - a;
}
return b;
}
}
- 对于负数,您可能也应该返回
0
。只需将代码简化为:
int fibo(int i) {
int a = 1, b = 0;
while (i-- > 0) {
b += a;
a = b - a;
}
return b;
}
错误消息完全正确。大小写标签就是标签。这可能对您有帮助:关于:int main(){return 0;}
这无法调用函数:fibo()
因此函数将永远不会执行变量i
从未设置,从未声明,(这应该在main()中完成)
因此代码将不会编译。注意:斐波那契序列以1、1、2、3、5、8…开头。发布的代码不会实现该序列
int fibo(int i) {
switch (i) {
case 1:
return 0;
case 2:
return 1;
default: {
int a = 0, b = 1;
for (int p = 3; p <= i; p++) {
b += a;
a = b - a;
}
return b;
}
}
}
int fibo(int i) {
switch (i) {
case 1:
return 0;
case 2:
return 1;
default:; // this is a null statement
int a = 0, b = 1;
for (int p = 3; p <= i; p++) {
b += a;
a = b - a;
}
return b;
}
}
int fibo(int i) {
switch (i) {
case 0:
return 0;
default:; // this is a null statement
int a = 1, b = 1;
for (int p = 2; p < i; p++) {
b += a;
a = b - a;
}
return b;
}
}
int fibo(int i) {
int a = 1, b = 0;
while (i-- > 0) {
b += a;
a = b - a;
}
return b;
}