vtp_li_b=vtp[li_int][b]+vtp[li_int+1][b]; b改成 int 型
我改了一下 没有error了
#include
#include
void main()
{
int T_obj,li_int,b,b1,li;
double t,temp,v,V_act,vtp_li_b,lib1,flag,vtp_max,vtp_min;
double vtp[][7]={
{1733.6,1816.7,1902.9,1992.4,2085.2,2181.2,2280.6},
{1010.6,1085.5,1164.6,1247.2,1332.9,1421.0,1510.9},
{323.4,397.9,475.3,555.1,637.1,721.0,806.3},
{-368.3,-296.2,-223.3,-149.6,-75.2,0.0,75.9}
};
printf("请输入实测目标电压:");
scanf("%f",&v);
V_act=v;
printf("\n请输入环境温度:");
scanf("%d",&t);
temp=t;
li=temp/10.0;
li_int=(int)li;
while(flag!=1)
{
vtp_li_b=vtp[li_int][b]+vtp[li_int+1][b];
if(vtp_li_b>800||vtp_li_b==0)
{
flag=1;
b1=b;
}
b++;
}
vtp_max=vtp_li_b=(li-li_int)*(vtp[li-li_int][b]+vtp[li-li_int+1][b]);
vtp_min=vtp_li_b=(li-li_int)*(vtp[li-li_int][b-1]+vtp[li-li_int+1][b-1]);
T_obj=((int)(V_act-vtp_min))/((int)(vtp_max-vtp_min))+b-1+35;
printf("vtp_li_b=%f\n",vtp_li_b);
printf("vtp_max=%f\n",vtp_max);
printf("vtp_min=%f\n",vtp_min);
printf("T_obj=%d",T_obj);
}追问我把你的b改成 int 型后,发现我贴上来的这条语句不是我原来的,
当我把vtp_li_b=vtp[li_int][b]+vtp[li_int+1][b]; 改成vtp_li_b=(li-li_int)*(vtp[li_int][b]+vtp[li_int+1][b]);后,这一行printf("vtp_li_b=%f\n",vtp_li_b);显示输出错误了,这是怎么回事