进退法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本身的.所做的改变也会保留.
很显然, 你的程序应该是用第二种方式的.