《C程序设计》算法归纳

出处:www.examlink.com 作者:小罗 日期:2007年01月23日 13时35分

求3个数由小到大的顺序输出

if(a>b) {t=a;a=b;b=t;}
if(a>c) {t=a;a=c;c=t;}
if(b>c) {t=b;b=c;c=t;}
* 若要求由大到小顺序输出,改'>'为'<'即可。

求ax*x+b*x+c方程的解

if(fabs(a)<=1e-6)
printf("非二次方程");
else
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("有两相等实根:%f\n",-b/(2*a));
else if(fabs(disc)>1e-6)
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("有两相异实根:%f和%f\n",x1,x2);
}
else
{realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("有两共轭复根:\n");
printf("%f+%fi\n",realpart,imagpart);
printf("%f-%fi\n",realpart,imagpart);
}


求Fibonacci数列 ( f(n)=f(n-1)+f(n-2) )

int f[N]={1,1};
for(i=2;i<N;i++)
f=f[i-1]+f[i-2];
printf("%d",f);


迭代法求x=sqrt(a) ( 迭代公式:x(n+1)=(x(n)+a/x(n))/2 绝对误差<0.00001 )
double mysqrt(double x0)
{double x1,y;
x1=(x0+a/x0)/2.0;
if(fabs(x1-x0)>0.00001)
y=mysqrt(x1);
else
y=x1;
return(y);
}

最后更新时间:2008-05-28 11:40:37
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
您可以用以下几种方式找到此文章

考试全流程