央视曝黄子珊骗局:C++中的一个小问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 22:23:06
# include <iostream.h>
# define N 15
void main()
{
int a [15],i;
a [0]=1,a[1]=2;
for(i=0;i<=N-2;i++)
a[i+2]=a[i+1]+a[i];
double b[14];
double sum;
for(i=0;i<=N-1;i++)
b[i]=a[i+1]/a[i];
for(i=0,sum=0;i<=N-1;i++)
sum+=b[i];
cout<<"下列分数序列的前15项之和为:"<<sum<<endl<<"2/1 3/2 5/3 8/5 13/8......"<<endl;
}
没有出错,但为什么结果屏幕上什么都不显示呢?
没有,什么都没啊,就是黑屏,我觉得没有错啊?!
编译无数次了,都没错,用的是Microsoft Visual C++ 6.0

"for(i=0;i<=N-1;i++)
b[i]=a[i+1]/a[i];"
一段N-1=14
b[i]是从0到13的,改的时候或者把double b[14]改成double b[15],或者把for(i=0;i<=N-1;i++)改成i<N-1

有没有输出:“下列分数序列的前15项之和为:”这句话?

编译得过吗?第二个for后面好像少了个{

首先vc6的话我觉得应该
#include<iostream>
using namespace std;
另外光设b[]是double没用的,a[i+1]/a[i]返回的是int。至少应该(double)a[i+1]/a[i]

# include <iostream.h>
void main()
{
int N=15;
int a [15],i;
a [0]=1,a[1]=2;
for(i=0;i<=13;i++)
a[i+2]=a[i+1]+a[i];
double b[14];
double sum;
for(i=0;i<14;i++)
b[i]=a[i+1]/a[i];
for(i=0,sum=0;i<14;i++)
sum+=b[i];
cout<<"下列分数序列的前15项之和为:"<<sum<<endl<<"2/1 3/2 5/3 8/5 13/8......"<<endl;
}
调试通过VC++6.0

原文的这两个循环:
for(i=0;i<=N-1;i++)
b[i]=a[i+1]/a[i];
for(i=0,sum=0;i<=N-1;i++)
sum+=b[i];
存在问题,我已经修复,原因是没有搞清I++运算的原理,建议好好看看基础。如果对于本题还有什么不明白~请继续问。