看看这组C程序能用for循环写?
三段因起始条件不一样而写的判断程序,判断流程是想同的,都是取hanshu()的值进行判断输出Lx。如下:A0=0;A1=A2=1;//第一组起始条件1
S0=0;S1=0;//第一组起始条件2
hanshu(&f1); //判断并输出
k1=f1;
if((k1>10)&&(k1<20))
{
L1=0;
}
else
{
;
}
S0=0;S1=0;//第一组起始条件2
...
判断并输出
---------------------------------------------------------------
A1=0;A0=A2=1;//第二组起始条件1
S0=0;S1=0;//第二组起始条件2
hanshu(&f2);
k2=f2;
if((k2>10)&&(k2<20))
{
L2=0;
}
else
{
;
}
S0=0;S1=0;//第二组起始条件2
...
判断并输出
---------------------------------------------------------------
A2=0;A0=A1=1;//第三组起始条件1
S0=0;S1=0;/第三组/起始条件2
hanshu(&f3);
k3=f3;
if((k3>10)&&(k3<20))
{
L3=0;
}
else
{
;
}
S0=0;S1=0;//第三组起始条件2
...
判断并输出
----
这相当于排列式了,能用for循环搞一下吗? unsigned char GetValue(void){//不知传入参数的类型,可以自己改!
unsigned char k;
hanshu(&k);
if ((k>10) && (k<20))return 0;
return 1;//条件未成立的返回值!
}
这段是一样的:
hanshu(&f3);
k3=f3;
if((k3>10)&&(k3<20))
{
L3=0;
}
else
{
;
}
可以做一个函数,调用,返回!
逻辑流程一样的地方做成一个函数,根据条件不一样,输入不同的参数 可以做一个简单的散列表 用数组,应该不难
设a为条件1, s 为条件2
fL k 数组k应该能省略
for(xh=0; xh<6; xh++) // 比如有6组:0-5
{
A0=a; A1=a; A2=a;// 条件1
S0=s; S1=s; // 条件2
hanshu(f+xh); //判断并输出
k=f;
if((k>10)&&(k<20))
{
L=0;
}
else
{
;
}
}
非常感谢 mon51 发表于 2012-9-22 20:54 static/image/common/back.gif
unsigned char GetValue(void){//不知传入参数的类型,可以自己改!
unsigned char k;
hanshu(&k);
谢谢
你给出出了hanshu的简化写法--用另一个函数取代。 zhanan 发表于 2012-9-22 21:48 static/image/common/back.gif
用数组,应该不难
设a为条件1, s 为条件2
非常感谢
你用二维数组给出了所有判断条件的一个for循环,我又把二楼老兄的方法应用,两者结合做出了一个很简洁的程序。
再次感谢二楼和6楼的朋友!!!
页:
[1]