搜索
bottom↓
回复: 8

看看这组C程序能用for循环写?

[复制链接]

出0入0汤圆

发表于 2012-9-22 17:07:28 | 显示全部楼层 |阅读模式
三段因起始条件不一样而写的判断程序,判断流程是想同的,都是取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循环搞一下吗?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入20汤圆

发表于 2012-9-22 20:54:56 | 显示全部楼层
unsigned char GetValue(void){  //不知传入参数的类型,可以自己改!
unsigned char k;
hanshu(&k);
  if ((k>10) && (k<20))  return 0;
  return 1;//条件未成立的返回值!
}

出0入20汤圆

发表于 2012-9-22 20:49:59 | 显示全部楼层
这段是一样的:
          hanshu(&f3);
                              k3=f3;                              
                                                                                      
                              if((k3>10)&&(k3<20))
                              {
                                 L3=0;
                               }
                               else
                               {
                                ;                             
                               }
可以做一个函数,调用,返回!

出0入0汤圆

发表于 2012-9-22 21:30:39 | 显示全部楼层
逻辑流程一样的地方做成一个函数,根据条件不一样,输入不同的参数

出0入0汤圆

发表于 2012-9-22 21:46:48 | 显示全部楼层
可以做一个简单的散列表

出0入0汤圆

发表于 2012-9-22 17:07:29 | 显示全部楼层
用数组,应该不难

设a[6,3]  为条件1, s[6,2] 为条件2
f[6]  L[6]   k[6]   数组k应该能省略

for(xh=0; xh<6; xh++)   // 比如有6组:  0-5
{
   A0=a[xh,0]; A1=a[xh,1]; A2=a[xh,2];  // 条件1
   S0=s[xh,0]; S1=s[xh,1];                     // 条件2
   hanshu(f+xh);          //判断并输出
   k=f[xh];
   if((k>10)&&(k<20))
   {
        L[xh]=0;
   }
   else
   {
       ;
   }
}

出0入0汤圆

 楼主| 发表于 2012-9-24 07:59:39 | 显示全部楼层
非常感谢

出0入0汤圆

 楼主| 发表于 2012-9-24 15:30:34 | 显示全部楼层
mon51 发表于 2012-9-22 20:54
unsigned char GetValue(void){  //不知传入参数的类型,可以自己改!
unsigned char k;
hanshu(&k);

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

出0入0汤圆

 楼主| 发表于 2012-9-24 15:33:32 | 显示全部楼层
zhanan 发表于 2012-9-22 21:48
用数组,应该不难

设a[6,3]  为条件1, s[6,2] 为条件2

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

再次感谢二楼和6楼的朋友!!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-10 19:00

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表