共有回帖数  0  个 
	 
	
	
	
     
          
          
               
				
			 
				
					 
 
            
				   - 
						
						
							 
									排序:void pcbub(p,n) 
  int n; 
  char p[]; 
  { int m,k,j,i; 
    char d; 
    k=0; m=n-1; 
    while (km) 
      { j=m-1; m=0; 
        for (i=k; i=j; i++) 
          if (pp[i+1]) 
            { d=p; p=p[i+1]; p[i+1]=d; m=i;} 
        j=k+1; k=0; 
        for (i=m; i=j; i--) 
          if (p[i-1]p) 
            { d=p; p=p[i-1]; p[i-1]=d; k=i;} 
      } 
    return; 
  } 
************************************************** 
 void pchap(p,n) 
  int n; 
  char p[]; 
  { int i,mm; 
    char t; 
    void csift(); 
    mm=n/2; 
    for (i=mm-1; i=0; i--) 
      csift(p,i,n-1); 
    for (i=n-1; i=1; i--) 
      { t=p[0]; p[0]=p; p=t; 
        csift(p,0,i-1); 
      } 
    return; 
  } 
  static void csift(p,i,n) 
  int i,n; 
  char p[]; 
  { int j; 
    char t; 
    t=p; j=2*(i+1)-1; 
    while (j=n) 
      { if ((jn)&&(p[j]p[j+1])) j=j+1; 
        if (tp[j]) 
          { p=p[j]; i=j; j=2*(i+1)-1;} 
        else j=n+1; 
      } 
    p=t; 
    return; 
  } 
void pckey(p,n,k,m) 
 int n,k,m; 
 HEAPSORT *p[]; 
 { int i,l; 
 HEAPSORT *w; 
 void pcsift(); 
 if (k0) k=0; 
 if (mn-1) m=n-1; 
 l=m-k+1; 
 for (i=l/2-1; i=0; i--) 
 pcsift(p,k,i,l); 
 for (i=l-1; i=1; i--) 
 { w=p[k]; p[k]=p[i+k]; p[i+k]=w; 
 pcsift(p,k,0,i); 
 } 
 return; 
 } 
 static void pcsift(p,k,i,l) 
 int i,l,k; 
 HEAPSORT *p[]; 
 { int m,n; 
 char t; 
 HEAPSORT *w; 
 t=(*p[i+k]).KEY; w=p[i+k]; n=2*(i+1)-1; m=i; 
 while (n=l-1) 
 { if ((nl-1)&&((*p[n+k]).KEY(*p[n+k+1]).KEY)) 
 n=n+1; 
if (t(*p[n+k]).KEY) 
 { p[m+k]=p[n+k]; 
 m=n; n=2*(m+1)-1; 
 } 
 else n=l; 
 } 
 p[m+k]=w; 
 return; 
 }
void pcqck(p,n) 
 int n; 
 char p[]; 
 { int m,i0,*i; 
 char *s; 
 void csplit(); 
 extern void pcbub(); 
 i=&i0; 
 if (n10) 
 { csplit(p,n,i); 
 m=i0; 
pcqck(p,m); 
s=p+(i0+1); 
 m=n-(i0+1); 
pcqck(s,m); 
 } 
 else pcbub(p,n); 
 return; 
 } 
 static void csplit(p,n,m) 
 int n,*m; 
 char p[]; 
 { int i,j,k,l; 
 char t; 
 i=0; j=n-1; 
 k=(i+j)/2; 
 if ((p=p[j])&&(p[j]=p[k])) l=j; 
 else if ((p=p[k])&&(p[k]=p[j])) l=k; 
 else l=i; 
 t=p[l]; p[l]=p; 
 while (i!=j) 
 { while ((ij)&&(p[j]=t)) j=j-1; 
 if (ij) 
 { p=p[j]; i=i+1; 
 while ((ij)&&(p=t)) i=i+1; 
 if (ij) 
 { p[j]=p; j=j-1;} 
 } 
 } 
 p=t; *m=i; 
 return; 
 }
void pcshl(p,n) 
 int n; 
 char p[]; 
 { int k,j,i; 
 char t; 
 k=n/2; 
 while (k0) 
 { for (j=k; j=n-1; j++) 
 { t=p[j]; i=j-k; 
 while ((i=0)&&(pt)) 
 { p[i+k]=p; i=i-k;} 
 p[i+k]=t; 
 } 
 k=k/2; 
 } 
 return; 
 } 
插值: 
#include "math.h" 
 double eeatk(x0,h,n,y,t,eps) 
 int n; 
 double t,eps,x0,h,y[]; 
 { int i,j,k,m,l; 
 double z,xx[10],yy[10]; 
 z=0.0; 
 if (n1) return(z); 
 if (n==1) { z=y[0]; return(z);} 
 m=10; 
 if (mn) m=n; 
 if (t=x0) k=1; 
 else if (t=x0+(n-1)*h) k=n; 
 else 
 { k=1; j=n; 
 while ((k-j!=1)&&(k-j!=-1)) 
 { l=(k+j)/2; 
 if (tx0+(l-1)*h) j=l; 
 else k=l; 
 } 
 if (fabs(t-(x0+(l-1)*h))fabs(t-(x0+(j-1)*h))) k=j; 
 } 
 j=1; l=0; 
 for (i=1;i=m;i++) 
 { k=k+j*l; 
 if ((k1)||(kn)) 
 { l=l+1; j=-j; k=k+j*l;} 
 xx[i-1]=x0+(k-1)*h; yy[i-1]=y[k-1]; 
 l=l+1; j=-j; 
 } 
 i=0; 
 do 
 { i=i+1; z=yy; 
 for (j=0;j=i-1;j++) 
 z=yy[j]+(t-xx[j])*(yy[j]-z)/(xx[j]-xx); 
 yy=z; 
 } 
 while ((i!=m-1)&&(fabs(yy-yy[i-1])eps)); 
 return(z); 
 }
查找: 
 int qbkey(p,n,a,b,m) 
 int n,*m; 
 BISERCH *p[]; 
 SERCHTYPE a,b; 
 { int i,j,k; 
 i=1; j=n; 
 while (i=j) 
 { k=(i+j)/2; 
 if (((*p[k-1]).KEY=a)&&((*p[k-1]).KEY=b)) 
 { i=k-1; j=0; 
 while ((i=0)&&((*p).KEY=a))  
 { i=i-1; j=j+1;} 
 i=i+1; 
 while ((k=n-1)&&((*p[k]).KEY=b))  
 { k=k+1; j=j+1;} 
 *m=j; return(i); 
 } 
 if ((*p[k-1]).KEYb) j=k-1; 
 else i=k+1; 
 } 
 while ((i=0)&&(b(*p).KEY)) i=i-1; 
 i=i+1; *m=0; 
 return(i); 
 }
产生随机函数:#include "math.h" 
 double mgrn1(u,g,r) 
 double u,g,*r; 
 { int i,m; 
 double s,w,v,t; 
 s=65536.0; w=2053.0; v=13849.0; 
 t=0.0; 
 for (i=1; i=12; i++) 
 { *r=(*r)*w+v; m=(int)(*r/s); 
 *r=*r-m*s; t=t+(*r)/s; 
 } 
 t=u+g*(t-6.0); 
 return(t); 
 }
汉字操作: 
#include "dos.h" 
 #include "stdlib.h" 
 #include "stdio.h" 
 void taspl(num,row,col,color,xor,q,n,fp) 
 FILE *fp; 
 int num,row,col,color,xor,n; 
 char q[]; 
 { int y,code,j; 
 void chapl(); 
 j=0; y=col; 
 while (jn) 
 { code=q[j]; 
 chapl(num,row,y,code,color,xor,fp); 
 y=y+8*(num+1); j=j+1; 
 } 
 return; 
 }
							 
							 
							 
							  
							  
							  楼主 2016-02-19 08:23 回复
						 
						 
           
          
          
         
   
         
      
 
   
             
                  
                  
 
 
 
     
	 
  
	Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
	
	意见反馈 | 
	关于直线 | 
	版权声明 | 
	会员须知