C语言控制逻辑2

来源:百度知道 编辑:UC知道 时间:2024/09/28 17:21:15
void mohu(void)
{
int b,c;
b=sheding-moh2;
c=moh2-moh1;
/*d=b*ke;
e=c*kec;
f=(int)d;
g=(int)e;
if(f>3)f=3;
if(f<-3)f=-3;
if(g>3)g=3;
if(g<-3)g=-3;
h=mo[f+3][g+3];
if(abs(b)>200)ku=20;
else ku=2;
pwm1=h*ku;
CMPR1=pwm1;*/
if(b>600)no1=7;
else if (b>200 && b<=600)no1=6;
else if (b>40 && b<=200)no1=5;
else if (b>0 && b<=40)no1=4;
else if(b>-40 && b<=0)no1=3;
else if(b>-200 && b<=-40)no1=2;
else if(b>-600 && b<=-200)no1=1;
else no1=0;
if(c>=300)no2=6;
else if(c>=100 && c<300)no2=5;
else if(c>20 && c<100)no2=4;
else if(c>=-20 && c<=20)no2=3;
else if(c>-100 && c<-20)no2=2;
else if(c>-300 && c<=-100)no2=1;
else no2=0;
pwm1=pwm1+mo[no1][no2];

你程序中的这种"&& b<=600
&& b<=-200 && c<=-100"语句可以省掉.
我认为你的程序大概意思是:
当"b"取某一个范围的值时,就有一个no1的值与之对应,如:考试成绩:当在90分以上,打等级A,80分以上打等级B,我觉得就是如此.

非常不建议写成这样逻辑不清的形式。