分类：电脑/网络-程序设计
问题：k为什么会变（C语言）计算定积分x*x+x+1在（1，2）上的值 
计算定积分x*x+x+1在（1，2）上的值，‘k’在其中一直是为1，为什么最后边为7了#include <std.h.>void main(){  int i;  double j,s=0,k=1;  double a[800];  for(i=0;i<=800;i++)    a[i]=(k/800*i+1)*(k/800*i+1)+(k/800*i+1)+1;  for(i=0;i<800;i++){    j=(a[i]+a[i+1])/2;    s=k/800*j+s计算定积分x*x+x+1在（1，2）上的值，‘k’在其中一直是为1，为什么最后边为7了#include <std.h.>void main(){  int i;  double j,s=0,k=1;  double a[800];  for(i=0;i<=800;i++)    a[i]=(k/800*i+1)*(k/800*i+1)+(k/800*i+1)+1;  for(i=0;i<800;i++){    j=(a[i]+a[i+1])/2;    s=k/800*j+s;  }  printf("%lf",s);}
回答：你定义了a[800]，就是a[0]-a[799]，但是在第一个循环里修改了a[800]的值，在内存里正好是k...

把第一句for(i=0;i<=800;i++)里的<=改成<

这么粗心