#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 190 浏览量
更新于2009-01-01
收藏 311KB RAR 举报
在编程领域,C语言因其高效、灵活和接近底层硬件的特性,被广泛应用于系统开发、嵌入式系统以及算法实现等方面。"C语言常用算法源代码"这个资源为学习者提供了一个宝贵的实践平台,让我们可以通过具体的代码实例来理解和掌握各种经典算法。下面,我们将深入探讨这些算法的核心概念和应用。
1. **排序算法**:
- **冒泡排序**:通过不断地交换相邻的逆序元素,逐步将大元素推向数组的一端。时间复杂度为O(n^2)。
- **选择排序**:每次找到未排序部分的最小(或最大)元素,放到已排序部分的末尾。时间复杂度为O(n^2)。
- **插入排序**:将元素逐个插入到已排序的部分,保持有序。时间复杂度为O(n^2)。
- **快速排序**:利用分治策略,通过一次划分操作将数组分为两部分,然后递归地对这两部分进行排序。平均时间复杂度为O(n log n)。
- **归并排序**:也是分治策略,将数组分为两半,分别排序后再合并。时间复杂度为O(n log n)。
2. **查找算法**:
- **线性查找**:遍历数组直到找到目标元素或遍历结束。时间复杂度为O(n)。
- **二分查找**:适用于已排序的数组,每次查找都缩小一半的搜索范围。时间复杂度为O(log n)。
3. **动态规划**:
- **斐波那契数列**:通过递推公式计算斐波那契数列的项,避免重复计算,减少时间复杂度。
- **背包问题**:解决在容量限制下,如何选取物品以最大化价值的问题。
4. **图算法**:
- **深度优先搜索(DFS)**:沿着某一条路径一直探索到不能再探索为止,再回溯到未被探索的节点继续探索。
- **广度优先搜索(BFS)**:按照层次顺序依次访问所有节点,常用于最短路径问题。
5. **字符串处理**:
- **KMP算法**:处理字符串匹配问题,避免不必要的回溯,提高效率。
- **Rabin-Karp滚动哈希**:通过哈希值快速比较两个字符串是否相等。
6. **递归与回溯**:
- **八皇后问题**:在棋盘上放置八个皇后,不允许任何两个皇后在同一行、同一列或同一斜线上。
- **N皇后问题**:N个皇后的版本,同样要求皇后之间不能互相攻击。
7. **数据结构**:
- **链表**:用于表示一系列相互连接的数据元素。
- **栈**:后进先出(LIFO)的数据结构,常用于函数调用、括号匹配等。
- **队列**:先进先出(FIFO)的数据结构,应用于任务调度、缓冲区管理等。
- **树**:包括二叉树、平衡树(如AVL树、红黑树)等,用于数据组织和查找。
- **图**:用于表示对象之间的关系,支持多种操作,如路径查找、最短路径等。
以上就是“C语言常用算法源代码”可能涉及的一些核心知识点,通过这些实例,我们可以更好地理解和实践这些算法,提升编程技能。无论是初学者还是经验丰富的开发者,这些源代码都是宝贵的学习资源。
Sennics
- 粉丝: 1
- 资源: 2
最新资源
- 基于QtQML的点餐系统详细文档+全部资料+高分项目.zip
- 基于Qt编写的智能管家系统客户端,实现语音识别,按钮音效,摄像头采集。详细文档+全部资料+高分项目.zip
- 基于Qt创建的Linux系统下的浏览器详细文档+全部资料+高分项目.zip
- 基于Qt的C++项目,实现了网盘的基础功能,包括注册登录、好友系统、私聊群聊、文件操作、分享文件等功能,实现了网络通信、多线程等。详细文档+全部资料+高分项目.zip
- 基于QT的工资管理系统详细文档+全部资料+高分项目.zip
- 基于QT的纯C++控制台项目详细文档+全部资料+高分项目.zip
- 基于QT的简单的景点管理系统详细文档+全部资料+高分项目.zip
- 基于QT的模拟进程管理系统的设计与实现详细文档+全部资料+高分项目.zip
- 考试真题t41随机字符生成与解析
- 基于Qt的简易内部电子邮件系统详细文档+全部资料+高分项目.zip
- 基于QT的汽车销售系统,详细文档+全部资料+高分项目.zip
- 基于QT的人脸考勤系统详细文档+全部资料+高分项目.zip
- (177517012)基于java的宠物管理系统
- 基于QT的缺陷检测系统,包括图像检测以及目标检测两个部分,支持ONNXRuntime加速详细文档+全部资料+高分项目.zip
- 基于Qt的色盲检测系统详细文档+全部资料+高分项目.zip
- (177577444)万能脱壳工具 - 一款在沙盒中运行的脱壳工具