double Y[8];
main()
{
void rk(); /* 调用rk函数*/
int i,j;
double h; /* h为步长*/
fi=fopen("C:\\Users\\Administrator\\Desktop\\input2.dat","r");
for(i=0;i<8;i++)
fscanf(fi,"%lf",&Y[i]); /* 从文件中读取Y数组值*/
close(fi);
rk(8,h);
do{
rk(8,h);}
while(Y[6]<=100);
}
/* **********************************************************************************************/
void rk(n,h)
int n;
double h;
{
int i;
for(i=0;i<n;i++)
Y[i]=Y[i]+h;
return;
}
我的程序简化成上面,为什么Y数组里面的值一直都是初始值?有大神吗
我这个Y[8]是在#include下面定义的,为什么不能改变他的值
追答函数定义语句void rk(n,h)中n和h没有类型
追问有啊 大哥 再说这个跟数组赋值有什么关系
我源程序能编译 这不是简化了 随便打得 主要是看数组值怎么变啊
追答你最好把你的可以编译的程序贴上
追问原程序几百行你看吗,再说我上面这个程序就少了个#include和FILE *fi 就能编译
追答你重新看下rk函数,是不是里面又定义了一个名为Y的局部变量。你可以rk函数里试试直接更改Y[0]的值看是否会改变还有,你的h值是否为0
本回答被提问者采纳