bootgames 发表于 2012-9-22 17:07:28

看看这组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循环搞一下吗?

mon51 发表于 2012-9-22 20:54:56

unsigned char GetValue(void){//不知传入参数的类型,可以自己改!
unsigned char k;
hanshu(&k);
if ((k>10) && (k<20))return 0;
return 1;//条件未成立的返回值!
}

mon51 发表于 2012-9-22 20:49:59

这段是一样的:
          hanshu(&f3);
                              k3=f3;                              
                                                                                    
                              if((k3>10)&&(k3<20))
                              {
                                 L3=0;
                               }
                               else
                               {
                              ;                           
                               }
可以做一个函数,调用,返回!

maimaige 发表于 2012-9-22 21:30:39

逻辑流程一样的地方做成一个函数,根据条件不一样,输入不同的参数

zbb528528 发表于 2012-9-22 21:46:48

可以做一个简单的散列表

zhanan 发表于 2012-9-22 17:07:29

用数组,应该不难

设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
   {
       ;
   }
}

bootgames 发表于 2012-9-24 07:59:39

非常感谢

bootgames 发表于 2012-9-24 15:30:34

mon51 发表于 2012-9-22 20:54 static/image/common/back.gif
unsigned char GetValue(void){//不知传入参数的类型,可以自己改!
unsigned char k;
hanshu(&k);


谢谢
你给出出了hanshu的简化写法--用另一个函数取代。

bootgames 发表于 2012-9-24 15:33:32

zhanan 发表于 2012-9-22 21:48 static/image/common/back.gif
用数组,应该不难

设a为条件1, s 为条件2


非常感谢
你用二维数组给出了所有判断条件的一个for循环,我又把二楼老兄的方法应用,两者结合做出了一个很简洁的程序。

再次感谢二楼和6楼的朋友!!!
页: [1]
查看完整版本: 看看这组C程序能用for循环写?