24小时热门版块排行榜    

查看: 1098  |  回复: 2
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

樱木三道

新虫 (著名写手)

[求助] 分段函数编程 已有1人参与

分段函数编程
#pragma once
#include <stdio.h>
#include <math.h>
#include "slv_c_utils.h"
double A;
adams_c_Cnfsub    Cnfsub;
void Cnfsub(const struct sAdamsContactFriction* cnf, double time,  const double* loci, const double* ni,
     const double* locj,const double* nj, double gap, double gapdot,double gapdotdot,
     double area, int dflag, int iflag, double* force)
{
       if(iflag) ;
     else
     {
         double K = *(cnf->PAR+0);
         double E = *(cnf->PAR+1);
         double C = *(cnf->PAR+2);
         double v = *(cnf->PAR+3);
         if(gap<=0&&gapdot<=0)
         {
             force[0]=max(0,K*pow(-gap,E));
              
        if(gapdot==0)
         {
     A=gap;
         }
         }
         if(gap<=0&&gapdot>0)
         {
             force[0]=max(0,pow(C,-2*E)*K*pow(-gap+(1-pow(C,2))*A,E));
         }
         if(gap>0)
         {
             force[0]=0;
         }
     }
}
这是一个过程,也就是说会先满足第一个if语句中的条件(gapdot>=0然后<0)我要在gapdot>0时使用gapdot==0时的结果,我程序中是把gapdot=0时的结果赋值给变量A,然后调用,但是好像不行,这是怎么回事,有大神吗?
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

樱木三道

新虫 (著名写手)

引用回帖:
2楼: Originally posted by 神级呆呆贼 at 2018-04-26 18:34:50
一直没明白你要表述的问题。我简单说一下我的猜想:你要在gapdot &gt; 0 时候使用gapdot == 0 的结果,那么一个问题就是:如果gapdot == 0;这条语句没有执行,而gapdot &gt; 0 却执行了,那么问题的结果自 ...

没人回答了

发自小木虫Android客户端
3楼2018-07-04 12:33:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

神级呆呆贼

禁虫 (小有名气)


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2018-04-27 22:44:20
本帖内容被屏蔽

2楼2018-04-26 18:34:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见