中国国家二级保护动物:C编程改错

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/19 18:55:05
#include"stdio.h"
main()
{int i;
float x1[6],x2[6],x3[6],x4[6],k[6],n[6];
float sum=0,fun[5];
x1[0]=1.22e11;
x2[0]=29.7e9;
x3[0]=1.01e10;
x4[0]=3.29e9;
long double x1[5]=1.196e11,
x2[5]=5.374e10,
x3[5]=2.415e10,
x4[5]=8.396e7;
n[0]=0;
k[5]=0;
for(i=2;i<6;i++)
{float b=1.109e5,
a=1.22e11;
n[i]=b*(0.5*x3[i-1]*exp(-(0.8+0.42*k[i-1])*2/3)+x4[i-1]*exp(-(0.8+k[i-1])*2/3));
x1[i]=n[i]*a/(n[i]+a);
x2[i]=x1[i-1]*exp(-0.8);
x3[i]=x2[i-1]*exp(-0.8);
x4[i]=x3[i-1]*exp(-0.8-0.42*k[i-1]*2/3)+x4[i-1]*exp(-0.8-k[i-1]);
fun[i-1]=17.86*x3[i-1]*0.42*k[i-1]*(1-exp(-(0.8+0.42*k[i-1])*2/3))/(0.8+0.42*k[i-1])+22.99*x4[i-1]*k[i-1]*(1-exp(-(0.8+k[i-1])*2/3))/(0.8+k[i-1]);
};
for(i=1;i<5;i++)
{sum=sum+fun[i];}
printf("sum=%d",sum);
}

不知道你的程序是干什么的,不过肯定有两处小错误。
1、少了#include "math.h",因为你要用到exp函数。
2、long double x1[5]这句有问题,你上面已经声明了float x1[6]了,这里应该把long double去掉。

long double x1[5]=1.196e11,

这是什么东西,前面定义过了。

至少前面float x1[6],x2[6],x3[6],x4[6],k[6],n[6];
后面long double x1[5]=1.196e11,
x2[5]=5.374e10,
x3[5]=2.415e10,
x4[5]=8.396e7;
名字重复了。前面定义x1,x2等等后面就不能再用x1,x2了。

根本看不出这程序要干什么。