本文目錄一覽:
C語言 二分法查找問題
#include
stdio.h
void
main()
{
float
x0,x1,x2,fx0,fx1,fx2;
do{
printf(“enter
x1
x2:”);
scanf(“%f,%f”,x1,x2);
fx1=(x1*(2*x1-4)+3)*x1-6;
fx2=(x2*(2*x2-4)+3)*x2-6;
}while(fx1*fx20);
/*如果f(x1),f(x2)同號,則在[x1,x2]區間無實根,重新輸入x1,x2
*/
do{
x0=(x1+x2)/2;
/*求x1和x2間的中點:x0=(x1+x2)/2
*/
fx0=(x0*(2*x0-4)+3)*x0-6;
if((fx0*fx1)0){ /*如f(x0)與f(x1)不同號,把x0賦給x2,把f(x0)賦給f(x2)*/
x2=x0;
fx2=fx0;
}
else{ /*否則,把x0賦給x1,f(x0)賦給f(x1)*/
x1=x0;
fx1=fx0;
}
}while(fabs(fx0)=1e-5);/*判斷f(x0)的絕對值是否小於某一個指定的值(如10的負5次方)*/
printf(“x=%6.3f\n”,x0);
/*輸出x0*/
}
c語言二分法程序如下,結果好像沒問題,但提交系統總是說超時!誰能幫着修改一下,謝謝。
我看了一下,好像你的算法思路不怎麼對,我把排序和二分法查找給出
for(j=0;j=n-2;j++)
for(i=j+1;i=n-2;i++)
{
if(a[i]a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
} //排序結束 其實排序很多種方法,我喜歡這種
l=n-1;//l代表末標,s代表首標
s=0;
if(ma[s]||ma[l])
printf(“不在這個區間\n1”);
else
{
while(l!=s)
{
mid=(l-s)/2;
if(m==a[mid])
{
printf(“第%d個數是\n”,mid+1);
break;
}
if((l-s)==1m!=a[l]m!=a[s])
{
printf(“沒有符合的\n”);
break;
}
if(ma[mid]) //在後面一半中
s=mid;
else // 在前面一半中
l=mid;
}
}
c語言二分法怎麼用,求例子!!
二分法查找還是二分法求方程式解
#includestdio.h
#include math.h
float f( float a )
{
return a*a*a + a – 1;
}
float jie( float a, float b )
{
/* x*x*x + x -1 = 0; */
float m = (a+b)/2;
printf( “a=%f,b=%f\n”, a, b);
printf( “fm=%f, fa=%f, fb=%f\n”, f(m), f(a), f(b) );
if ( f(a)*f(b) 0 )
{
printf( “起始區間不正確\n” );
return m;
}
if ( fabs(f(m)) 0.0001 )
return m;
if ( f(m)*f(a) 0 )
return jie( m, b );
else
return jie( a, m );
}
int main()
{
float a, b, x;
printf( “輸入起始區間: ” );
scanf( “%f %f”, a, b );
x = jie( a, b );
printf( “x^3+x-1=0; x= %.3f\n”, x );
}
求用c語言編寫一個函數二分法求根的算法
二分法計算函數f(x)=x*x*x*x+2*x*x*x-x-1;
本程序在turbo c或c++下編譯
#include “stdio.h”
#include math.h
float f(float x)
{float y;
y=x*x*x*x+2*x*x*x-x-1;
return y;
}
void main()
{float a=0,b=0,h,y,x;
int k,n0;
printf(“please input qujian a and b”);
scanf(“%f%f%d”,a,b,n0); /*輸入含根區間a,b,循環次數n0 */
for(k=0;k=n0;k++)
{ x=(a+b)/2;
h=(b-a)/2;
y=f(x);
if(h10e-6||fabs(y)10e-6)
{ printf(“k=%d,x=%f,y=%f”,k,x,y);
break; } /*輸出分半次數k,函數的根x,及x對應的函數值.*/
else
{if(f(a)*f(x)0)
b=x;
else a=x;
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/201162.html