
Romberge算法是什么,其实是一种求数值积分的方法。就是先不断二分用递推梯形公式求出Tn,再通过Tn,T2n的线性组合求出复化Simpon积分Sn,再通过Sn,S2n的线性组合求出Cotes积分值,这样一步步往下算,它是一种加速算法。过程像下面这样:
我们都写过这个程序:
它会输出:
于是很自然地,要写出一个输出自己的程序,可以尝试这样写:
main() { printf("#include<stdio.h>\nmain() { printf(\"#include<stdio.h>\n main() { ...\") } ");}
它会输出:
你可以继续这样写下去,但你会发现自己已经陷入死循环了,写到printf那就得返回去加上一段。显然像上面这样是做不到的。是不是说这样的程序就不存在呢?答案是否定的,不仅写得出来,而且各种各样,五花八门的都有。
qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。
函数原型:
void qsort (void *base,size_t num,size_t size , int (* comparator)(const void * , const void *));
用法以及参数说明:
Base:数组起始地址;
num:数组元素个数;
size:每一个元素的大小;
comparator:函数指针,指向比较函数;
1、比较函数要接受两个参数,一般要转换成要比较数据的类型;
2、比较函数的返回值要反映两个参数是大于,等于还是小于的关系,分别用一个正数,0和一个负数表示。
在比较函数中以第一个参数和第二个参数比较则是从小到大排序。反过来则是从大到小排序。看下面的例子:
对int类型数组排序
int num[100];
int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}
qsort(num,100,sizeof(num[0]),cmp);
引自:程序人生 下载
现在的计算机专业学生怎么这个样?
© is-Programmer.com All rights reserved. | Power by Chito 1.1.4