ACM常考算法
len: 从第start个字符串开始,截取长度为len的字符 strback[
截取的到的字符 ]:
返回值: 0:超出字符串长度,截取失败;1:截取成功 注意:
需要 string.h
源程序:
int mid(char str[],int start,int len,char strback[]) {
int l,i,k=0; l=strlen(str);
if (start+len>l)return 0; for (i=start;i<start+len;i++) strback[k++]=str[i]; strback[k]='\0'; return 1; }
三、计算几何
1.叉乘法求任意多边形面积
语法:result=polygonarea(Point *polygon,int N); 参数:
*polyg
多变形顶点数组 on:
N: 多边形顶点数目 返回
多边形面积 值: 注意: 源程序:
支持任意多边形,凹、凸皆可 多边形顶点输入时按顺时针顺序排列
typedef struct { double x,y; } Point;
double polygonarea(Point *polygon,int N) {
int i,j;
double area = 0;
for (i=0;i<N;i++) { j = (i + 1) % N;
area += polygon[i].x * polygon[j].y; area -= polygon[i].y * polygon[j].x; }