基于visual Studio2013解决C语言竞赛题之1052求根
题目
解决代码及点评
/* 功能:用简单迭代法解方程 e^x - x - 2 = 0 它有两个根(如图),其迭代公式为: 1) x[n+1]= e^x*n-2 (初值X<0时) 2) x[n+1]= Ln(x[n] + 2) (初值X>0时) 注:本程序中选取初值X0 不同时,要分别使用公式1或公式2迭代,得原方程<0或>0的解。(公式由来略) 时间:13:08 2013/10/26 */ #include<stdio.h> #include <stdlib.h> #include<math.h> #define E 2.74 double getRoot1(double x,int n) { return pow(E,x)*n-2; //x<0时直接返回结果 } double getRoot2(double n) { if(n<=0) { return 2; //结束条件 } else { return log10f(getRoot2(n-1)+2); //迭代法则 } } void main() { int n; scanf_s("%d",&n); double x; scanf_s("%lf",&x); double root1; if (x<0) //判断x是否小于0 { root1=getRoot1(x,n); printf("root 1 = %f\n",root1); } else { double root2=getRoot2(n); printf("root 2 =%f \n",root2); } system("pause"); }
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
代码下载
http://download.csdn.net/detail/yincheng01/6681845
解压密码:c.itcast.cn