大神帮我看下简单小程序哪里不对C++
//f1=1,f2=1,fn=f(n-1)+f(n-2),输出前50项,每行输出5个值#include<iostream>usingnamespacestd;voidma...
//f1=1,f2=1,fn=f(n-1)+f(n-2),输出前50项,每行输出5个值
#include <iostream>
using namespace std;
void main()
{
int f1=1,f2=1,i;
for(i=3;i<=50;i++)
fi=f(i-1)+f(i-2);
for(i=1;i<=50;i++)
if(i%5==1) cout<<endl;
cout<<fi;
}
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
a.cpp
d:\c++编程\网上例题2\a.cpp(8) : error C2065: 'fi' : undeclared identifier
d:\c++编程\网上例题2\a.cpp(8) : error C2065: 'f' : undeclared identifier
执行 cl.exe 时出错.
a.obj - 1 error(s), 0 warning(s) 展开
#include <iostream>
using namespace std;
void main()
{
int f1=1,f2=1,i;
for(i=3;i<=50;i++)
fi=f(i-1)+f(i-2);
for(i=1;i<=50;i++)
if(i%5==1) cout<<endl;
cout<<fi;
}
--------------------Configuration: a - Win32 Debug--------------------
Compiling...
a.cpp
d:\c++编程\网上例题2\a.cpp(8) : error C2065: 'fi' : undeclared identifier
d:\c++编程\网上例题2\a.cpp(8) : error C2065: 'f' : undeclared identifier
执行 cl.exe 时出错.
a.obj - 1 error(s), 0 warning(s) 展开
3个回答
展开全部
#include <iostream>
using namespace std;
void main()
{
int f[51],i;
f[1]=1,f[2]=1;
for(i=3;i<=50;i++)
f[i]=f[i-1]+f[i-2];
for(i=1;i<=50;i++)
{
if(i%5==1) cout<<endl;
cout<<f[i]<<" ";
}
}
这是斐波那契数列非递归写法 但最后几个数可能超出范围了 是负数 你的程序思想是对的,但fi没有定义,f()是函数形式,应在main函数外写一个递归函数
using namespace std;
void main()
{
int f[51],i;
f[1]=1,f[2]=1;
for(i=3;i<=50;i++)
f[i]=f[i-1]+f[i-2];
for(i=1;i<=50;i++)
{
if(i%5==1) cout<<endl;
cout<<f[i]<<" ";
}
}
这是斐波那契数列非递归写法 但最后几个数可能超出范围了 是负数 你的程序思想是对的,但fi没有定义,f()是函数形式,应在main函数外写一个递归函数
更多追问追答
追问
f[51]什么意思
追答
定义一个一维数组,大小是51
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*哪有fi中i的变量还能改变fi的变量!是不是有点绕,i可以作为数组的下标那么f就应该是数组的数组名(也就是数组的首地址)*/
#include <iostream>
#include <iomanip>
using namespace std;
int main(void)
{
int f[50] = {0};
f[0] = f[1] = 1;
for(int i=2;i<50;i++)
f[i]=f[i-1]+f[i-2];
for (i = 0; i<50; ++i)
{
cout<<setw(12)<<f[i];
if ( (i+1)%5 == 0)
{
cout<<endl;
}
}
return 0;
}
#include <iostream>
#include <iomanip>
using namespace std;
int main(void)
{
int f[50] = {0};
f[0] = f[1] = 1;
for(int i=2;i<50;i++)
f[i]=f[i-1]+f[i-2];
for (i = 0; i<50; ++i)
{
cout<<setw(12)<<f[i];
if ( (i+1)%5 == 0)
{
cout<<endl;
}
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你定义了f1 for里面用地是fi 还有你f函数没有函数体 要自己写个f 函数
追问
具体怎么改啊?
追答
#include
void main()
{
//在函数内填写代码
int n,i,sum,p,q;
int a[17];
sum=0;
for(i=0;i>a[i];
sum+=a[i];
}
n=i;
p=sum/10;
coutp)
cout<<a[i];
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询