运行了一下,结果是408146688。你的结果多了1,怀疑应该是你用的编程软件对有效数位的规定不同。你把程序改一下:
#include
int main()
{
int i;
double x[7];//数组元素改为双精度型
x[0]=2;x[1]=3;
for(i=2;i<8;i++)
x[i]=x[i-1]*x[i-2];
printf("%.f",x[7]);//注意输出的格式
return 0;
}
估计就没问题了。
要使用数组元素x[7],定义数组时,应该使用int x[8];
溢出了.
int最大只能存到2147483647
第八个值是85691213438976 明显超过了.
所以 这个需要用long long 来存储.即64位int.