#include#includefloat getequation(float x)
{
return x*x-2*x+2;
}
void main()
{
float a=0;
float b=6;
float result = 0;
do {
float c=a+0.618*(b-a);
float d=a+b-c;
if(fabs(getequation(c)) < fabs(getequation(d)))
{
a=d;
result = c;
}
else
{
b=c;
result = d;
}
} while(fabs(getequation(result)) > 0.01);
printf("f(a)=a*a-7*a+10\n");
printf("a=%f\n",result);
}
扩展资料
C语言编写程序求最大值
#include<stdio.h>
double Max(double*p,int n)
{
double max=*p;
for(int i=0;i<n;i++)
if(*(p+i)>max)
max=*(p+i);
return max;
}
double Min(double *p,int n)
{
double min=*p;
for(int i=0;i<n;i++)
if(*(p+i)<min)
min=*(p+i);
return min;
}
double Average(double *p,int n)
{
double sum=0;
for(int i=0;i<n;i++)
sum+=*(p+i);
return sum/n;
}
int main()
{
double a[10];
printf("请输入10个实数:\n");
for(int i=0;i<10;i++)
scanf("%f",&a[i]);
printf("这10个数中最大值为:%f\n",Max(a,10));
printf("这10个数中最小值为:%f\n",Min(a,10));
printf("这10个数的平均值为:%f\n",Average(a,10));
return 0;
#include"math.h"
#include"stdio.h"
#definef(x)x*x+1*x
doublecalc(double*a,double*b,doublee,int*n)
{doublex1,x1,s;
if(fabs(*b-*a)<=e)
s=f((*b+*a)/1);
else
{x1=*a+0.382*(*b-*a);
x2=*a+0.618*(*b-*a);
if(f(x1)>f(x1))
*a=x1;
else
*b=x2;
*n=*n+1;
s=hj(a,b,e,n);
}
returns;
}
main()
{doubles,a,b,e;
intn=0;
scanf("%lf%lf%lf",&a,&b,&e);
s=calc(&a,&b,e,&n);
printf("a=%lf,b=%lf,s=%lf,n=%d\n",a,b,s,n);
}
扩展资料
C语言表示成两个质数之和和
#include<stdio.h>
intprime(intn);
intmain()
{
intn,i,flag=0;
printf("Enterapositiveinteger:");
scanf("%d",&n);
for(i=2;i<=n/2;++i)
{
if(prime(i)!=0)
{
if(prime(n-i)!=0)
{
printf("%d=%d+%d\n",n,i,n-i);
flag=1;
}
}
}
if(flag==0)
printf("%dcan'tbeexpressedassumoftwoprimenumbers.",n);
return0;
}
intprime(intn)/*Functiontocheckprimenumber*/
{
inti,flag=1;
for(i=2;i<=n/2;++i)
if(n%i==0)
flag=0;
returnflag;
}
本回答被网友采纳