新微赢技术网
标题:
[求助]一个关于斐波纳契数列验证黄金分割的程序
[打印本页]
作者:
欧阳天明
时间:
2009-11-3 01:07
标题:
[求助]一个关于斐波纳契数列验证黄金分割的程序
在验证上述问题是我编写如下:
#include<iostream.h>
void main()
{
double fn1,fn2,fn3;
int i,n;
cout<<"请输入你要进行个数:";
cin>>n;
double a[n];
fn1=fn2=1;
a[0]=fn1;
a[1]=fn2;
cout<<"第1个数是:"<<fn1<<"\n";
cout<<"第2个数是:"<<fn2<<"\n";
for(i=3;i<n;i+=3)
{
fn3=fn1+fn2;a[i-1]=fn3;
fn1=fn3+fn2;a[i]=fn1;
fn2=fn1+fn3;a[i+1]=fn2;
}
cout<<"现在验证黄金分割的比率是0.618";
for(i=0;i<n;i++)
{
if(a[i+1]/a[i]==0.618)
cout<<"验证成功!";
else
cout<<"失败!";
}
return ;
}
谁能帮我看看 有是什么问题啊 就是不能执行可执行文件啊
作者:
爱我后悔
时间:
2009-11-3 01:07
请大家帮帮忙啊
作者:
♀鈊亂ゞ鎵伙
时间:
2009-11-3 01:07
return ; 忘拉返回值
作者:
逊一
时间:
2009-11-3 01:07
#include<iostream.h>
void main()
{
double fn1,fn2,fn3;
int i,n;
cout<<"请输入你要进行个数:";
cin>>n;
double a[n]; 这里数组大小应该是个定值,不能用变量,可换成a[100]。
fn1=fn2=1;
a[0]=fn1;
a[1]=fn2;
cout<<"第1个数是:"<<fn1<<"\n";
cout<<"第2个数是:"<<fn2<<"\n";
for(i=3;i<n;i+=3)
{
fn3=fn1+fn2;a[i-1]=fn3;
fn1=fn3+fn2;a[i]=fn1;
fn2=fn1+fn3;a[i+1]=fn2;
}
cout<<"现在验证黄金分割的比率是0.618";
for(i=0;i<n;i++)
{
if(a[i+1]/a[i]==0.618)//这里应该是a[i]/a[i+1],你弄反了,另外0.618是个约数,你永远也不可能用这个式子求出来
cout<<"验证成功!";
else
cout<<"失败!";
}
return ;main()是void型的,此句多余。
}
复制代码
作者:
℡可可℡
时间:
2009-11-3 01:07
哦 谢谢了
在那个a[n]中的n不也是一个输入的值吗
作者:
熾天使rose
时间:
2009-11-3 01:07
you have two options to allocate the memory for the int buffer
Option 1: (static allocation)
int a[100];
or
#define N 100
int a[N];
or
const int N=100;
int a[N];
Option 2: (dynamic allocation)
int* a;
int n=100;
a = new int[n]; // C++
or
a = (int*)malloc(n*sizeof(int)); // C
作者:
妊嫒ぞ流逝
时间:
2009-11-3 01:08
哦听了楼上的收益非浅啊
但我想要按用户的要求来分配存储空间
这样可以节省空间把
作者:
林枫
时间:
2009-11-3 01:08
read more about static allocation and dynamic allocation:
both have advantages and disadvantages.
You can search bc-cn in both C forum and this C++ forum.
作者:
笨笨洋葱
时间:
2009-11-3 01:08
哦好的谢谢楼上的版主
欢迎光临 新微赢技术网 (http://bbs.weiying.cn/)
Powered by Discuz! X3.2