C语言解方程

来源:百度知道 编辑:UC知道 时间:2024/07/04 03:24:13
S= (X-8) *[100-10(X -10)]

如何令S值取得最大值?

#include <stdio.h>
void main()
{ int i;
float x0, x=0.1,h=0.1,s1=0,s2=0;
do{
s1=(x-8)*(100-10*(x-10));
x=x+h;
if(s2<s1)
{ x0=x-h;
s2=s1;
}
}while(x<25);

printf("s=%f,x=%5.1f\n",s2,x0);
}

#include<stdio.h>
main()
{
float s,i,j,knum,tag;
s=-32768;
for(i=-32768;i<32767;i++)
{num= (i-8)*(100-10*(i -10));
if(num>s)
{s=num;
j=i;
}
}//整数位
for(i=j-1;i<j+1;i+=0.1)
{num= (i-8)*(100-10*(i -10));
if(num>s)
{s=num;
k=i;
}
}//小数点后一位
for(i=k-0.1;i<k+0.1;i+=0.01)
{num= (i-8)*(100-10*(i -10));
if(num>s)
{s=num;
tag=i;
}
} //小数点后两位

这是一个无约束最优化问题,楼上两位都用穷举法做,在下不敢苟同。