C语言中的问题.fun的调用问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 16:22:16
#include <stdio.h>
float fun(float a[],float b[],float m,float n)
{int i;
float A1,A2;
for(i=0;i<7;i++)
{A1=(m-a[i+1])/(a[i]-a[i+1]);
A2=(m-a[i])/(a[i+1]-a[i]);
if(m>=a[i]&&m<=a[i+1])
n=A1*b[i]+A2*b[i+1];
}
return n;
}
void main()
{float x,y;
float alfa[8]={90.0,100.0,110.0,120.0,130.0,140.0,150.0,160.0};
float kalfa[8]={0.68,0.74,0.79,0.83,0.86,0.89,0.92,0.95};
scanf("a=%f",&x);
fun(alfa[8],kalfa[8],x,y);
printf("ka=%f",y);
}
上面问题是运行出错.希望大家能够帮我解决

#include <stdio.h>
float fun(float a[],float b[],float m,float n)
{int i;
float A1,A2;
for(i=0;i<7;i++)
{A1=(m-a[i+1])/(a[i]-a[i+1]);
A2=(m-a[i])/(a[i+1]-a[i]);
if(m>=a[i]&&m<=a[i+1])
n=A1*b[i]+A2*b[i+1];
}
return n;
}
void main()
{float x,y;
float alfa[8]={90.0,100.0,110.0,120.0,130.0,140.0,150.0,160.0};
float kalfa[8]={0.68,0.74,0.79,0.83,0.86,0.89,0.92,0.95};
scanf("a=%f",&x);//改为printf("a=");scanf("%f",&x);
//这里加y的初始化,如scanf("%f",&y);
fun(alfa[8],kalfa[8],x,y); /改为fun(alfa,kalfa,x,y);/*数组作为参数,只写数组名就OK,参数y必须初始化才能进行传值;*/
printf("ka=%f",y);
}
/*****************************************************/
补充:
void main()
{
float x,y;
float res;
float alfa[8]={90.0,100.0,110.0,120.0,130.0,140.0,150.0,160.0};
float kalfa[8]={0.68,0.74,0.79,0.83,0.86,0.89,0.92,0.95};