c语言100个经典算法 联系客服

发布时间 : 星期六 文章c语言100个经典算法更新完毕开始阅读dab96f75f46527d3240ce053

/* 猴子吃桃问题 */ main() {

int i,s,n=1;

for(i=1;i<10;i++) {

s=(n+1)*2 n=s; }

printf(\第一天共摘了%d个桃\\n\}

迭代法求方程根

___________________________________________________________________

/* 迭代法求一个数的平方根 */

#define Epsilon 1.0E-6 /*控制解的精度*/ #include main() {

float a,x0,x1;

printf(\请输入要求的数:\scanf(\x0=a/2;

x1=(x0+a/x0)/2;

while(fabs(x1-x0)>=Epsilon) {

x0=x1;

x1=(x0+a/x0)/2; }

printf(\的平方根:%f.5\\n\}

/* 上题的另一种算法 */

#define Epsilon 1.0E-6 /*控制解的精度*/ #include #include

main() {

float num,pre,this; do {

scanf(\输入要求平方根的数*/ }while(num<0); if (num==0)

printf(\ else {

this=1; do {

pre=this;

this=(pre+num/pre)/2;

}while(fabs(pre-this)>Epsilon);/*用解的精度,控制循环次数*/ }

printf(\ }

用牛顿迭代法 求方程 2*x*x*x-4*x*x+3*x-6 的根 /* 牛顿迭代法 */

#define Epsilon 1.0E-6 /*控制解的精度*/ #include main() {

float x1,x0=1.5;

x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3); while(fabs(x1-x0>=Epsilon) {

x0=x1;

x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3); }

printf(\方程的根为%f\\n\}

用二分法求上题 /* 二分法 */

#define Epsilon 1.0E-5 /*控制解的精度*/ #include

main() {

folat x1,x2,x0,f1,f2,f0; x0=(x1+x2)/2;

f0=2*x0*x0*x0-4*x0*x0+3*x0-6; /* 求中点的函数值 */ while(fabs(f0)>=Epsilon) {

if(f0*f1<0) { x2=x0;

f2=2*x2*x2*x2-4*x2*x2+3*x2-6; }

if(f0*f2<0) { x1=x0;

f1=2*x1*x1*x1-4*x1*x1+3*x1-6; }

x0=(x1+x2)/2;

f0=2*x0*x0*x0-4*x0*x0+3*x0-6; }

printf(\用二分法求得方程的根:%f\\n\ }

题目:打印出如下图案(菱形) * *** ****** ******** ****** *** *

___________________________________________________________________

程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利

用双重for循环,第一层控制行,第二层控制列。

___________________________________________________________________

程序源代码: main()

{

int i,j,k;

for(i=0;i<=3;i++) {

for(j=0;j<=2-i;j++) printf(\

for(k=0;k<=2*i;k++) printf(\ printf(\ }

for(i=0;i<=2;i++) {

for(j=0;j<=i;j++) printf(\

for(k=0;k<=4-2*i;k++) printf(\ printf(\ } }

题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,

十位与千位相同。

___________________________________________________________________

程序分析:同29例

___________________________________________________________________

程序源代码: main( ) {

long ge,shi,qian,wan,x; scanf(\wan=x/10000;

qian=x000/1000; shi=x0/10; ge=x;

if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf(\