11.行列式计算
语法:
result=js(int s[][],int n)
参数:
s[][]:行列式存储数组
n:行列式维数,递归用
返回值:
行列式值
注意:
函数中常数N为行列式维度,需自行定义
源程序:
int js(s,n)
int s[][N],n;
{
int z,j,k,r,total=0;
int b[N][N];/*b[N][N]用于存放,在矩阵s[N][N]中元素s[0]的余子式*/
if(n>2)
{
for(z=0;z<n;z++)
{
for(j=0;j<n-1;j++)
for(k=0;k<n-1;k++)
if(k>=z) b[j][k]=s[j+1][k+1]; else b[j][k]=s[j+1][k];
if(z%2==0) r=s[0][z]*js(b,n-1); /*递归调用*/
else r=(-1)*s[0][z]*js(b,n-1);
total=total+r;
}
}
else if(n==2)
total=s[0][0]*s[1][1]-s[0][1]*s[1][0];
return total;
}
12.求排列组合数
语法:
result=P(long n,long m); / result=long C(long n,long m);
参数:
m:排列组合的上系数
n:排列组合的下系数
返回值:
排列组合数
注意:
符合数学规则:m<=n
源程序:
long P(long n,long m)
{
long p=1;
while(m!=0)
{p*=n;n--;m--;}
return p;
}
long C(long n,long m)
{
long i,c=1;
i=m;
while(i!=0)
{c*=n;n--;i--;}
while(m!=0)
{c/=m;m--;}
return c;
}
1.字符串替换
语法:
replace(char str[],char key[],char swap[]);
参数:
str[]:在此源字符串进行替换操作
key[]:被替换的字符串,不能为空串
swap[]:替换的字符串,可以为空串,为空串表示在源字符中删除key[]
返回值:
null
注意:
默认str[]长度小于1000,如否,重新设定设定tmp大小
需要 string.h
源程序:
void replace(char str[],char key[],char swap[])
{
int l1,l2,l3,i,j,flag;
char tmp[1000];
l1=strlen(str);
l2=strlen(key);
l3=strlen(swap);
for (i=0;i<=l1-l2;i++)
{
flag=1;
for (j=0;j<l2;j++)
if (str[i+j]!=key[j]) {flag=0;break;}
if (flag)
{
strcpy(tmp,str);
strcpy(&tmp[i],swap);
strcpy(&tmp[i+l3],&str[i+l2]);
strcpy(str,tmp);
i+=l3-1;
l1=strlen(str);
}
}
}
2.字符串查找
语法:
result=strfind(char str[],char key[]);
参数:
str[]:在此源字符串进行查找操作
key[]:被查找的字符串,不能为空串
返回值:
如果查找成功,返回key在str中第一次出现的位置,否则返回-1
注意:
需要 string.h
源程序:
int strfind(char str[],char key[])
{
int l1,l2,i,j,flag;
l1=strlen(str);
l2=strlen(key);
for (i=0;i<=l1-l2;i++)
{
flag=1;
for (j=0;j<l2;j++)
if (str[i+j]!=key[j]) {flag=0;break;}
if (flag) return i;
}
return -1;
}
3.字符串截取
语法:
mid(char str[],int start,int len,char strback[])
参数:
str[]:操作的目标字符串
start:从第start个字符串开始,截取长度为len的字符
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;
}