進退法c語言
㈠ <急急急急>用進退法確定函數f(x)=x^2-3x+10的一優化搜索區間[a,b]. 用c語言和MATLAB分別編一段程序
http://www.soso.com/q?w=%C5%C5%C3%FB%D3%C5%BB%AF%C8%ED%BC%FE%CD%FA%B5%C0&sc=web&ch=w.h&gid=&cin=&num=10&lr=&htn=8&bs=%CD%FA%B5%C0%D3%C5%BB%AF%C8%ED%BC%FE
㈡ 用C語言來編進退法的搜索區間
用C語言來編進退法的搜索區間的源代碼如下:
#include<stdio.h>
void main()
{
int a[20],x,i,start,end;
printf("input 20 numbers: ");
for(i=0;i<20;i++) scanf("%d",&a[i]);
printf("please enter the number: ");
scanf("%d",&x);
for(start=0,end=19;start<=end;)
{
i=start+(end-start)/2;
if (x==a[i])
{
printf("%d",i+1);
getch();
return;
}
else if (x>a[i]) end = i-1;
else start=i+1;
}
(2)進退法c語言擴展閱讀
1、C語言查找是在大量的信息中尋找一個特定的信息元素,在計算機應用中,查找是常用的基本運算,例如編譯程序中符號表的查找。
2、其實二分查找、插值查找以及斐波那契查找都可以歸為一類——插值查找。插值查找和斐波那契查找是在二分查找的基礎上的優化查找演算法。
㈢ c語言 子函數里的值沒有返回給主函數。
這是C中顫氏一個很典型的游洞散問題,傳值和傳地址值的區別:
傳值方式:
void jtf(float x0,float h,float a,float b),這樣傳的a和b就是傳值,傳參的時候會構造一個a和b的副本對象,在函數jtf中對a和b所做的任何操作都是對副本對象的操作,和原來的a b毫無關系,原來的a b的值不會改變。
傳地址值神氏方式:
float a, b;
void jtf(float x0,float h,float& a,float& b) -> jtf(a, b); //引用
void jtf(float x0,float h,float* a,float* b) ->jtf(&a, &b);//指針
使用引用和指針即是傳地址值方式, 傳遞的是原來的a b的地址,在函數jff中所做的所有操作都是針對a b本身的.所做的改變也會保留.
很顯然, 你的程序應該是用第二種方式的.