当前位置: 代码迷 >> C语言 >> 关于一个程序的问题,急求解
  详细解决方案

关于一个程序的问题,急求解

热度:191   发布时间:2007-01-14 22:43:39.0
关于一个程序的问题,急求解
是一个关于矩阵求逆的C语言程序,程序如下:
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
int rinv(a,n)
int n;
double a[];
{ int *is,*js,i,j,k,l,u,v;
double d,p;
is=malloc(n*sizeof(int));
js=malloc(n*sizeof(int));
for (k=0; k<=n-1; k++)
{ d=0.0;
for (i=k; i<=n-1; i++)
for (j=k; j<=n-1; j++)
{ l=i*n+j; p=fabs(a[l]);
if (p>d) { d=p; is[k]=i; js[k]=j;}
}
if (d+1.0==1.0)
{ free(is); free(js); printf("err**not inv\n");
return(0);
}
if (is[k]!=k)
for (j=0; j<=n-1; j++)
{ u=k*n+j; v=is[k]*n+j;
p=a[u]; a[u]=a[v]; a[v]=p;
}
if (js[k]!=k)
for (i=0; i<=n-1; i++)
{ u=i*n+k; v=i*n+js[k];
p=a[u]; a[u]=a[v]; a[v]=p;
}
l=k*n+k;
a[l]=1.0/a[l];
for (j=0; j<=n-1; j++)
if (j!=k)
{ u=k*n+j; a[u]=a[u]*a[l];}
for (i=0; i<=n-1; i++)
if (i!=k)
for (j=0; j<=n-1; j++)
if (j!=k)
{ u=i*n+j;
a[u]=a[u]-a[i*n+k]*a[k*n+j];
}
for (i=0; i<=n-1; i++)
if (i!=k)
{ u=i*n+k; a[u]=-a[u]*a[l];}
}
for (k=n-1; k>=0; k--)
{ if (js[k]!=k)
for (j=0; j<=n-1; j++)
{ u=k*n+j; v=js[k]*n+j;
p=a[u]; a[u]=a[v]; a[v]=p;
}
if (is[k]!=k)
for (i=0; i<=n-1; i++)
{ u=i*n+k; v=i*n+is[k];
p=a[u]; a[u]=a[v]; a[v]=p;
}
}
free(is); free(js);
return(1);
}
检查时出现Linker Error: Undefined symbol '_main" in module COS
请问,这是怎么回事?怎么解决这个问题? 偶是菜鸟 还请高手指点啊
搜索更多相关的解决方案: 求解  include  int  

----------------解决方案--------------------------------------------------------
貌似没有主函数
----------------解决方案--------------------------------------------------------
晕,我也不太会编,这也是找的,怎么会有这么大的问题哈
能不能帮小弟改改啊
----------------解决方案--------------------------------------------------------

这个程序看着太浪费眼睛了.


----------------解决方案--------------------------------------------------------
别啊 小弟初来乍到 还请各位高人多多帮忙啊
----------------解决方案--------------------------------------------------------

能不能编的规范点啊!


----------------解决方案--------------------------------------------------------
这个程序也太令人费解了.你还少一个主函数啊.
int rinv(a,n)这个函数的范围也不知道啊
----------------解决方案--------------------------------------------------------
  相关解决方案