comway 发表于 2012-1-19 23:24:39

发个大二学生的C语言作业,大家给看看无证,临时程序员给我的程序,给开多少工资合适

要过年了,有空的给看看
简单事例:
用牛顿法实现特定方程近似解:
牛顿法:X’=X-f(x)/f’(x)
X为第n次迭代量 X’为第n+1次迭代量
f’(x)为f(x)的导数
求x^2-e^x=0的近似解
满足精度误差不超过10^(-6)



#include "stdio.h"
#include "math.h"
int main()
{
   int i,n;
   long double a;
   printf("所需精度,小数点后保留位数位:");
   scanf("%d",&n);
   printf("请输入根的起始位置x0=:");
   scanf("%f",&a);
   i=0;
   do
   {i++;
   a=a-(a*a-exp(a))/(2*a-exp(a));
   }
   while(fabs(a-a)>pow(10,-n));
   printf("%.12f",a);
   return 0;

comway 发表于 2012-1-20 22:28:11

我改的程序
#include "stdio.h"
#include "math.h"
int main()
{
   int i,n;
   long double a0,a1,a2,Accuracy;
   printf("所需精度,小数点后保留位数位:");
   scanf("%d",&n);
   Accuracy = pow(10,-n);//目标值只计算一次
   printf("请输入根的起始位置x0=:");
   scanf("%f",&a0);
   do
   { a1=a0;
   a2=a1-(a1*a1-exp(a1))/(2*a1-exp(a1));//牛顿法:X’=X-f(x)/f’(x)
   a0=a1;
   }
   while(fabs(a2-a1)>Accuracy); //满足精度误差不超过10^(-6)
   printf("%.12f",a2);
   return 0;

learner123 发表于 2012-1-21 18:28:38

水平都一般,用这个只能说明该同志可以用做程序员。入门级,工资随行业而变,都是入门级。当然用该程序来挑选人才,是傻帽干的事

hzr0071 发表于 2012-1-21 18:46:13

程序员不是用来写算法的。。。。。
程序员都是当牛使的,按单个工程最大程序行数算。。。。。。。
500行算入门,3000行算初级。。。。。

comway 发表于 2012-1-22 12:26:28

http://cache.amobbs.com/bbs_upload782111/files_51/ourdev_714226Y9RVP2.jpg
(原文件名: .jpg)
页: [1]
查看完整版本: 发个大二学生的C语言作业,大家给看看无证,临时程序员给我的程序,给开多少工资合适