bbtfcjy 发表于 2014-1-15 23:48:05

一个比较积分插补的例子,流程图+源码

本帖最后由 bbtfcjy 于 2014-1-15 23:53 编辑

#include "stdafx.h"

int main(int argc, char* argv[])
{
int a,b,f,jx,jy,x0,y0,dx,dy,da,db,qd;a=0;b=8;f=0;jx=32;jy=32;x0=0;y0=-8;dx=1;dy=1;da=1;db=-1;qd=4;
do
{
if (b==0 & qd==4){dx=-1;dy=1;da=-1;db=1;qd=1;}
else if (a==0 & qd==1) {dx=-1;dy=-1;da=1;db=-1;qd=2;printf("%d,%d\n",a,qd);}
else if (b==0 & qd==2) {dx=1;dy=-1;da=-1;db=1;qd=3;printf("%d,%d\n",b,qd);}

if (a>=b)
      { if (jy<=0)   {break;}
          else { if (jx<=0) {jy=jy-1;y0=y0+dy;printf("%d,%d,%d,%d\n",jx,jy,x0,y0);}
               else{b=b+db;f=f+b;if (a>=2*f) {jy=jy-1;y0=y0+dy;printf("%d,%d,%d,%d\n",jx,jy,x0,y0);}
                                                                     else {f=f-a;a=a+da;x0=x0+dx;y0=y0+dy;jx=jx-1;jy=jy-1;printf("%d,%d,%d,%d\n",jx,jy,x0,y0);}
                                                }
      
                        }
          if(a<b) {f=-f;}
      }
else

      { if (jx<=0)   {break;}
          else { if (jy<=0) {jx=jx-1;x0=x0+dx;printf("%d,%d,%d,%d\n",jx,jy,x0,y0);}
               else{a=a+da;f=f+a;if (b>=2*f) {jx=jx-1;x0=x0+dx;printf("%d,%d,%d,%d\n",jx,jy,x0,y0);}
                                                         else {f=f-b;b=b+db;x0=x0+dx;y0=y0+dy;jx=jx-1;jy=jy-1;printf("%d,%d,%d,%d\n",jx,jy,x0,y0);}
                                                }
      
                        }
          if(a>b) {f=-f;}

          }

}

while(1);
                  
      

peace80 发表于 2014-1-16 08:59:58

貌似是C语言,想当年我还过了二级啊,现在不明觉厉了。
页: [1]
查看完整版本: 一个比较积分插补的例子,流程图+源码