#include "stdio.h"
#include "conio.h"
#include "math.h"
float A0,Ag,Agy,n,b,h,y1,y2,I0,a,ay,k1,k2,e0,M,N,Eh,Ih,l0,e,Oh,Oa,Ogy,OG;
float g,egy,eg,vk1,vk2,x,Og,p,q,y;
float biy,hiy;
int i;
/******************************Input function*****************************/
void Input()
{
printf("Please input M,N,Ag,Agy,n,b,h,a,ay,Eh,l0,Oa,OG......\n");
printf("M=");scanf("%f",&M);
printf("N=");scanf("%f",&N );
printf("Ag=");scanf("%f",&Ag);
printf("Agy=");scanf("%f",&Agy);
printf("n=");scanf("%f",&n);
printf("b=");scanf("%f",&b);
printf("h=");scanf("%f",&h);
printf("a=");scanf("%f",&a);
printf("ay=");scanf("%f",&ay);
printf("Eh=");scanf("%f",&Eh);
printf("l0=");scanf("%f",&l0);
printf("Oa=");scanf("%f",&Oa);
printf("OG=");scanf("%f",&OG);
}
/******************************Output function****************************/
void Output()
{
if(Oh<=Oa&&Ogy<=OG)
{printf("**********************************************\n");
printf("Oh=%ePa\n",Oh);
printf("Ogy=%ePa\n",Ogy);
printf("The result passed!\n");
printf("***********************************************\n");
}
else if(Oh>Oa)
{printf("Oh=%ePa\n",Oh);
printf("Ogy=%ePa\n",Ogy);
printf("Fault! Oh>Oa\n");}
else
{printf("**********************************************\n");
printf("Oh=%ePa\n",Oh);
printf("Ogy=%ePa\n",Ogy);
printf("Fault! Ogy>OG\n");
printf("***********************************************\n");
}
}
/******************************Output1 function***************************/
void Output1()
{
if(Oh<=Oa&&Ogy<=OG&&Og<=OG)
{printf("***********************************************\n");
printf("Oh=%ePa\n",Oh);
printf("Ogy=%ePa\n",Ogy);
printf("Og=%ePa\n",Og);
printf("The result passed!\n");
printf( "***********************************************\n");
}
else
{printf("***********************************************\n");
printf("Oh=%ePa\n",Oh);
printf("Ogy=%ePa\n",Ogy);
printf("Og=%ePa\n",Og);
printf("Fault! Possible Ogy>OG or Og>OG or Oh>Oa\n");
printf("************************************************\n");}
}
/******************************F(X,p1,p2)*********************************/
float F(X,p1,p2)
float X,p1,p2;
{float result;
result=pow(X,3)+p1*X+p2;
return(result);
}
/*****************************f(X,p1)************************************/
float f(X,p1)
float X,p1;
{float result1;
result1=3.*X*X+p1;
return(result1);
}
/****************************function qjz()*******************************/
float qjz()
{
float N,m,Agy,b,h,Q,Oa,Oh;
printf("Please input N,m,Agy,b,h,Q,Oa......\n");
printf("N=");
scanf("%f",&N);
printf("m=");
scanf("%f",&m);
printf("Agy=");
scanf("%f",&Agy);
printf("b=");
scanf("%f",&b);
printf("h=");
scanf("%f",&h);
printf("Q=");
scanf("%f",&Q);
printf("Oa=");
scanf("%f",&Oa);
Oh=N/(Q*(b*h+m*Agy));
if(Oh<=Oa)
{printf("**********************************************\n");
printf("Oh=%ePa\n",Oh);
printf("The result passed! Oh<Oa!\n");
printf("***********************************************\n");
}
else if(Oh>Oa)
{printf("**********************************************\n");
printf("Oh=%ePa\n",Oh);
printf("Fault! Oh>Oa!\n");
printf("***********************************************\n");
}
}
/****************************function xjz()******************/
float xjz()
{float N,m,my,Agy,Dhe,s,aj,Oa,Oh;
printf("Please N,m,my,Agy,Dhe,s,aj,Oa......\n");
printf("N=");scanf("%f",&N);
printf("m=");scanf("%f",&m);
printf("my=");scanf("%f",&my);
printf("Agy=");scanf("%f",&Agy);
printf("Dhe=");scanf("%f",&Dhe);
printf("s=");scanf("%f",&s);
printf("aj=");scanf("%f",&aj);
printf("Oa=");scanf("%f",&Oa);
Oh=N/(3.1415*Dhe*Dhe/4.+m*Agy+2*my*3.1415*Dhe*aj/s);
if(Oh<=Oa)
{printf("**********************************************\n");
printf("Oh=%ePa\n",Oh);
printf("The result passed! Oh<Oa!\n");
printf("***********************************************\n");
}
if(Oh>Oa)
{printf("**********************************************\n");
printf("Oh=%ePa\n",Oh);
printf("Fault! Oh>Oa!\n");
printf("***********************************************\n");
}
}
/***************************function sxjx()*************************/
float sxjx()
{
Input();
A0=b*h+n*(Ag+Agy);
y1=(0.5*b*h*h+n*(Ag*(h-a)+Agy*ay))/(b*h+n*(Ag+Agy));
y2=h-y1;
I0=b*(pow(y1,3)+pow(y2,3))/3+n*(Agy*pow((y1-ay),2)+Ag*pow((y2-a),2));
k1=I0/(A0*y2);
k2=I0/(A0*y1);
e0=M/N;
Ih=b*pow(h,3)/12.;
e=1./(1.-2.*N/((0.1/(0.2+e0/h)+0.16)*3.1415*3.1415*Eh*Ih/(l0*l0)))*e0+h/2-y2;
if(e<=k1||e<=k2)
{printf("This construction is little bias!\n");
Oh=N/A0+M*y1/I0;
Ogy=n*(N/A0+M*(y1-ay)/I0);
Output();
}
else
printf("This construction is large bias!\n");
g=e-h/2.;
egy=e-h/2.+ay;
eg=e+h/2.-a;
p=6.*n*(Agy*egy+Ag*eg)/b-3.*g*g;
q=-6.*n*(Agy*egy*egy+Ag*eg*eg)/b+2.*g*g*g;
vk1=-F(3.*h/4.,p,q)/f(3.*h/4.,p); /****at 3/4 length estimated**/
y=3.*h/4;
vk2=-F((y+vk1),p,q)/f((y+vk1),p);
y=3.*h/4.+vk1+vk2;
x=y-g;
Oh=N*e/((0.5*b*x*(h/2.-x/3.))+n*Agy*(x-ay)*(h/2.-ay)/x+\
n*Ag*(h-x-a)*(h/2.-a)/x);
Ogy=n*Oh*(x-ay)/x;
Og=n*Oh*(h-x-a)/x;
Output1();
}
/***************************T function*****************************/
float T()
{
Input();
printf("Please input biy,hiy \n");
printf("biy=");scanf("%f",&biy);
printf("hiy=");scanf("%f",&hiy);
A0=b*h+hiy*(biy-b)+2*n*(Ag+Agy);
y1=(0.5*b*h*h+hiy*(biy-b)*(h-0.5*hiy)+n*(Ag*a+Agy*(h-ay)))/(b*h+hiy*(biy-b)\
+n*(Ag+Agy));
y2=h-y1;
I0=(biy*y2*y2*y2-(biy-b)*(y2-hiy)*(y2-hiy)*(y2-hiy)+b*y1*y1*y1)/3.\
+n*(Agy*(y2-ay)*(y2-ay)+Ag*(y1-a)*(y1-a));
k1=I0/(A0*y2);
k2=I0/(A0*y1);
e0=M/N;
Ih=b*h*h*h/12.;
e=1./(1.-2.*N/((0.1/(0.2+e0/h)+0.16)*3.1415*3.1415*Eh*Ih/(l0*l0)))*e0+h/2-y2;
if(e<=k1||e<=k2)
{printf("This construction is little bias!\n");
Oh=N/A0+M*y1/I0;
Ogy=n*(N/A0+M*(y1-ay)/I0);
Output();
}
else
printf("This construction is large bias!\n");
}
/***************************I and xx function*****************************/
float I()
{
float I0y;
Input();
printf("Please input biy,hiy \n");
printf("biy=");scanf("%f",&biy);
printf("hiy=");scanf("%f",&hiy);
A0=b*h+2.*hiy*(biy-b)+n*(Ag+Agy);
I0=(biy*h*h*h-(biy-b)*(h-2.*hiy)*(h-2.*hiy)*(h-2.*hiy))/12.+\
n*(Ag+Agy)*(0.5*h-a)*(0.5*h-a);
y1=0.5*h;
y2=y1;
k1=I0/(A0*y2);
k2=k1;
e0=M/N;
Ih=(biy*h*h*h-(biy-b)*(h-2*hiy)*(h-2*hiy)*(h-2*hiy))/12.;
e=1./(1.-2.*N/((0.1/(0.2+e0/h)+0.16)*3.1415*3.1415*Eh*Ih/(l0*l0)))*e0+h/2.-y2;
if(e<=k1||e<=k2)
{printf("This construction is little bias!\n");
Oh=N/A0+M*y1/I0;
Ogy=n*(N/A0+M*(y1-ay)/I0);
Output();
}
else
printf("This construction is large bias!\n");
g=e-h/2.;
egy=e-h/2.+ay;
eg=e+h/2.-a;
p=(3.*(biy-b)*((g+hiy)*(g+hiy)-g*g)+6.*n*(Ag*eg+Agy*egy))/b-3.*g*g;
q=-(2.*(biy-b)*((g+hiy)*(g+hiy)*(g+hiy)-g*g*g)+6.*n*(Ag*eg*eg+Agy*egy*egy))\
/b+2.*g*g*g;
y=3.*h/4;
vk1=-F(3.*h/4.,p,q)/f(3.*h/4.,p); /****at 3/4 length estimated**/
vk2=-F((y+vk1),p,q)/f((y+vk1),p);
y=3.*h/4+vk1+vk2;
x=y-g;
I0y=biy*x*x*x/3.-(biy-b)*(x-hiy)*(x-hiy)*(x-hiy)/3.+\
n*(Ag*(h-x-a)*(h-x-a)+Agy*(x-ay)*(x-ay));
Oh=N*y*x/I0y;
Ogy=n*Oh*(x-ay)/x;
Og=n*Oh*(h-x-a)/x;
Output1();
}
/***************************Circle function************************/
float Circle()
{
float R,rg,K,V,W,Q,K0,Ah;
float PI;
int degree=0;
printf("Please input M,N,Ag,n,Eh,l0,Oa,OG,R,rg......\n");
printf("M=");scanf("%f",&M);
printf("N=");scanf("%f",&N );
printf("Ag=");scanf("%f",&Ag);
printf("n=");scanf("%f",&n);
printf("Eh=");scanf("%f",&Eh);
printf("l0=");scanf("%f",&l0);
printf("Oa=");scanf("%f",&Oa);
printf("OG=");scanf("%f",&OG);
printf("R=");scanf("%f",&R);
printf("rg=");scanf("%f",&rg);
Ah=3.1415*(2*R)*(2*R)/4.;
A0=Ah+n*Ag;
I0=3.1415*R*R*R*R/4.+0.5*n*Ag*rg*rg;
y1=R;
y2=y1;
k1=I0/(A0*y1);
k2=k1;
e0=M/N;
Ih=3.14*R*R*R*R/4.;
e=1./(1.-2.*N/((0.1/(0.2+e0/(2.*R))+0.16)*3.1415*3.1415*Eh*Ih/(l0*l0)))*e0;
if(e<=k1||e<=k2)
{
printf("This construction is little bias!\n");
Oh=N/A0+M*y1/I0;
Ogy=n*(N/A0+M*(y1-ay)/I0);
Output();
}
else
printf("This construction is large bias!\n");
PI=3.1415*degree/18
C语言常用算法源代码
需积分: 0 8 浏览量
更新于2008-11-19
收藏 299KB ZIP 举报
《C语言常用算法源代码》是一份非常宝贵的资源,它涵盖了C语言实现的各种经典算法,对于初学者和经验丰富的开发人员来说,都是提升技能的重要工具。C语言以其简洁、高效的特点,成为编写算法的理想选择,它能直接操作内存,使得算法的实现更为直观。
在学习和使用这些源代码时,我们可以深入理解以下几个关键知识点:
1. **排序算法**:包括快速排序、冒泡排序、插入排序、选择排序、归并排序等。排序是计算机科学的基础,了解不同排序算法的原理和性能分析(如时间复杂度和空间复杂度)对于优化代码至关重要。
2. **查找算法**:例如二分查找、哈希查找等。查找算法用于在数据集中定位特定元素,掌握这些算法可以提高程序的效率。
3. **图算法**:如深度优先搜索(DFS)和广度优先搜索(BFS),以及最短路径算法如Dijkstra算法和Floyd-Warshall算法,这些在解决网络问题、路径规划等问题中广泛应用。
4. **树算法**:如二叉搜索树、AVL树、红黑树等。这些数据结构在实际编程中经常出现,理解和实现它们是提升编程能力的关键。
5. **动态规划**:通过将问题分解为子问题来求解,如背包问题、最长公共子序列等。动态规划是解决复杂问题的有效方法,它可以帮助我们设计出高效的解决方案。
6. **字符串处理**:C语言中的字符串处理函数如strcat、strcmp、strlen等,以及KMP、Rabin-Karp等模式匹配算法,这些都是处理文本数据时常用的技巧。
7. **数据结构**:链表、栈、队列、堆等基础数据结构的实现,它们是构建复杂算法的基础。
8. **递归与回溯**:递归是解决问题的一种优雅方式,如斐波那契数列、八皇后问题等;而回溯则常用于解决约束满足问题,如N皇后问题、数独问题等。
9. **数值计算与模拟**:如数值积分、线性代数运算、模拟退火算法等,这些在科学计算和工程应用中广泛使用。
10. **位操作**:C语言提供了丰富的位运算符,利用位操作可以实现高效的数据处理,如奇偶校验、位掩码等。
通过研究这些源代码,不仅可以学习到C语言的基本语法和特性,还能深入理解各种算法的实现细节,提升编程思维。同时,实践是检验理论的最好方式,尝试修改、优化这些代码,将帮助你更好地掌握这些知识,并提升编程技能。
sharing2008
- 粉丝: 1
- 资源: 8
最新资源
- 【岗位说明】生物科技有限公司员工岗位职责.doc
- 【岗位说明】省中医院药材挑选岗位操作规程.doc
- 【岗位说明】外科护士长岗位说明书.doc
- 【岗位说明】药房药店最新岗位职责.doc
- 【岗位说明】药剂师中药师岗位职责.doc
- 【岗位说明】医美机构市场部人员岗位职责说明书.doc
- 【岗位说明】医疗投资集团组织结构及各岗位说明.doc
- 【岗位说明】医疗器械经营企业各岗位职责.doc
- 【岗位说明】医药行业制度制药公司市场部岗位职责范本.doc
- 【岗位说明】医院信息科岗位职责说明.doc
- 【岗位说明】责任护士岗位说明书.doc
- 【岗位说明】执业药师及药师岗位职责.doc
- 【岗位说明】制药企业岗位职责制.doc
- 【岗位说明】用药咨询药师职责.doc
- 【岗位说明】中草药煎药人员岗位职责.doc
- 【岗位说明】中药处理岗位操作规程.doc