资源简介

可计算将简支梁简化为15自由度以下的柔度矩阵

资源截图

代码片段和文件信息

#include “stdio.h“
#include“stdlib.h“

typedef struct /* 分数结构 */

{
int numerator; /* 分子 */
int denominator; /* 分母 */
}Fraction;

int GCD(int aint b);  
int LCM(int aint b);
Fraction Add(Fraction f1 Fraction f2);
Fraction sub(Fraction f1 Fraction f2);
Fraction multi(Fraction f1Fraction f2);
Fraction divide(Fraction f1Fraction f2);
Fraction power3(Fraction f1);
void main()
{
Fraction lxabw[15];int if;      /*a代表集中载荷距左支点的距离,b代表集中载荷距右支点的距离*/
printf(“请输入自由度数目:“);
scanf(“%d“&f);
l.denominator=l.numerator=a.denominator=b.denominator=x.denominator=f+1;
printf(“简支梁等效为%d自由度系统的柔度矩阵为:\n“f);
for(a.numerator=1;a.numerator<=f;a.numerator++)
{
b.numerator=f+1-a.numerator;
for(i=1;i<=f;i++)
 {
x.numerator=i;
if(x.numerator<=a.numerator)
{
w[i-1]=multi(multi(bx)sub(sub(multi(ll)multi(xx))multi(bb)));
w[i-1].denominator=w[i-1].denominator*6;
}

else
{
w[i-1]=multi(bsub(Add(multi(divide(lb)power3(sub(xa)))multi(sub(multi(ll)multi(bb))x))power3(x)));
w[i-1].denominator=w[i-1].denominator*6;
}

printf(“%d/%d “w[i-1].numeratorw[i-1].denominator);
 }
printf(“\n“);
}
system(“pause“);
}

Fraction Add(Fraction f1 Fraction f2)    /* 计算两个分数的和*/
{
Fraction retValue;
int lcm = LCM(f1.denominator f2.denominator); /* 计算最小公倍数 */
int gcd;
retValue.denominator = lcm;
retValue.numerator = f1.numerator * lcm / f1.denominator + f2.numerator * lcm / f2.denominator;
gcd = GCD(retValue.numerator retValue.denominator);
retValue.numerator /= gcd;
retValue.denominator /= gcd;
return retValue;
}

F

评论

共有 条评论

相关资源