我遇到了一个if语句问题,请大佬解惑
这个代码里的if条件满足了以后有时会执行但有时不会,我检查了好几遍感觉没问题啊。。请问哪位能教教我,图在下面#include<stdio.h>
int main()
{
const float a[6][10]={{2.59,2.40,2.33,2.21,2.09,2.00,1.88,1.80,1.72,1.61},
{1.88,1.80,1.73,1.68,1.62,1.59,1.53,1.49,1.44,1.36},
{1.64,1.59,1.55,1.52,1.48,1.46,1.42,1.38,1.34,1.26},
{1.49,1.46,1.44,1.42,1.39,1.38,1.34,1.31,1.27,1.20},
{1.39,1.37,1.35,1.34,1.33,1.31,1.29,1.27,1.22,1.17},
{1.32,1.31,1.30,1.29,1.27,1.26,1.25,1.23,1.20,1.14}
};
const float dd[10]={6.0,3.0,2.0,1.50,1.20,1.10,1.05,1.03,1.02,1.01};
const float rd[6]={0.04,0.10,0.15,0.20,0.25,0.30};
float d1=0;
float d2=0;
float r=0;
float c,d;
int i,j;
int p=0;
int q=0;
printf("enter:D1,D2,r:");
scanf("%f%f%f", &d1,&d2,&r);
c=d1/d2;
d=r/d2;
for(i=0;i<10;i++)
{
if(c==dd[i])
{
p=i;
break;
}
else if(i>=10)
{
break;
}
}
for(j=0;j<6;j++)
{
if(d==rd[j])
{
q=j;
break;
}
else if(j>=6)
{
break;
}
}
if(p==i)
{
if(q==j)
printf("a=%.2f\n",a[q][p]);
else
printf("There have no a compared\n");
}
else
printf("There have no a compared\n");
printf("i=%d\nj=%d\np=%d\nq=%d\nc=%.2f\nd=%.2f\n",i,j,p,q,c,d);
return 0;
}
大概就是这样,这两个算出来的结果是c和d,然后都在上面的矩阵里,所以我就搞不懂到底错在哪。。有大佬可以帮我看看吗..
[此贴子已经被作者于2020-3-23 14:20编辑过]