C语言如何在自定义函数中调用数组里的数据?

问题遇到的现象和发生背景

img

img

float N(float a,float b,float c,float d)
{
    float a1[4]={0.40,0.20,0.20,0.20};//界限长细比
    float a2[4]={0.49,0.49,0.76,0.34};//缺陷系数 
    float a3[3]={215.00,310.00,375.00};//材料强度 
    
    float i ;//整体稳定系数
    float y;//
    float n;//构件的承载力 
    
    float X,Y,Z;
    X=a1[b-1];
    Y=a2[b-1];
    Z=a3[a-1];

    y=0.5*(1+Y*(d-X)+pow(d,2));
    i=1/(y+sqrt(pow(y,2)-pow(d,2)));
    n =c*Z*i;


    if(i>=1)
    {
        i=1;
    }

    return n;
}

我想要达到的结果

如何在函数中调用数组里的数组

    X=a1[b-1];
    Y=a2[b-1];
    Z=a3[a-1];

这个a和b是float型,但是数组下标要用整形,提示的错误就是说不能用浮点型作为数组下标,你可以写成

    X=a1[(int)b-1];
    Y=a2[(int)b-1];
    Z=a3[(int)a-1];

你得吧数组当成参数传进去,涉及到指针