不要告诉我用什么方法,give me sample...
解决方案 »
- list control的insertcolumn函数第二个参数问题
- 求地址的完整正则表达式
- 请问列表控件里,怎么删除多行选中的数据(附图)???
- 数据发送结束后如何使发送方知道数据已经发送成功,使双方结束数据发送状态?
- 求《VISUAL C++MFC编程实例>> 和<<VISUAL C++MFC扩展编程实例>>书的源码?
- 请问大家,有没有这样一种硬件或软件能将许多台低档机器通过某种方式连接起来,然后以某种界面给用户,让用户感觉是在操作一台高档机器。
- 怎样设置COM+组件 才能让客户端匿名调用服务器上的组件!
- 各位好:请问在如何在CSocket非阻塞情况下,用函数得知该连接是否有效
- 如何将cstring型变量转换成字符型数组char*
- oicq中的脸谱是以位图方式装入的,怎么使它透明呢??
- 插科打诨一下:)
- Word,!!
#include "math.h"
#include "stdio.h"
int agaus(a,b,n)
int n;
double a[],b[];
{ int *js,l,k,i,j,is,p,q;
double d,t;
js=malloc(n*sizeof(int));
l=1;
for (k=0;k<=n-2;k++)
{ d=0.0;
for (i=k;i<=n-1;i++)
for (j=k;j<=n-1;j++)
{ t=fabs(a[i*n+j]);
if (t>d) { d=t; js[k]=j; is=i;}
}
if (d+1.0==1.0) l=0;
else
{ if (js[k]!=k)
for (i=0;i<=n-1;i++)
{ p=i*n+k; q=i*n+js[k];
t=a[p]; a[p]=a[q]; a[q]=t;
}
if (is!=k)
{ for (j=k;j<=n-1;j++)
{ p=k*n+j; q=is*n+j;
t=a[p]; a[p]=a[q]; a[q]=t;
}
t=b[k]; b[k]=b[is]; b[is]=t;
}
}
if (l==0)
{ free(js); printf("fail\n");
return(0);
}
d=a[k*n+k];
for (j=k+1;j<=n-1;j++)
{ p=k*n+j; a[p]=a[p]/d;}
b[k]=b[k]/d;
for (i=k+1;i<=n-1;i++)
{ for (j=k+1;j<=n-1;j++)
{ p=i*n+j;
a[p]=a[p]-a[i*n+k]*a[k*n+j];
}
b[i]=b[i]-a[i*n+k]*b[k];
}
}
d=a[(n-1)*n+n-1];
if (fabs(d)+1.0==1.0)
{ free(js); printf("fail\n");
return(0);
}
b[n-1]=b[n-1]/d;
for (i=n-2;i>=0;i--)
{ t=0.0;
for (j=i+1;j<=n-1;j++)
t=t+a[i*n+j]*b[j];
b[i]=b[i]-t;
}
js[n-1]=n-1;
for (k=n-1;k>=0;k--)
if (js[k]!=k)
{ t=b[k]; b[k]=b[js[k]]; b[js[k]]=t;}
free(js);
return(1);
}
#include "math.h"
#include "stdio.h"
int agjdn(a,b,n,m)
int n,m;
double a[],b[];
{ int *js,l,k,i,j,is,p,q;
double d,t;
js=malloc(n*sizeof(int));
l=1;
for (k=0;k<=n-1;k++)
{ d=0.0;
for (i=k;i<=n-1;i++)
for (j=k;j<=n-1;j++)
{ t=fabs(a[i*n+j]);
if (t>d) { d=t; js[k]=j; is=i;}
}
if (d+1.0==1.0) l=0;
else
{ if (js[k]!=k)
for (i=0;i<=n-1;i++)
{ p=i*n+k; q=i*n+js[k];
t=a[p]; a[p]=a[q]; a[q]=t;
}
if (is!=k)
{ for (j=k;j<=n-1;j++)
{ p=k*n+j; q=is*n+j;
t=a[p]; a[p]=a[q]; a[q]=t;
}
for (j=0;j<=m-1;j++)
{ p=k*m+j; q=is*m+j;
t=b[p]; b[p]=b[q]; b[q]=t;
}
}
}
if (l==0)
{ free(js); printf("fail\n");
return(0);
}
d=a[k*n+k];
for (j=k+1;j<=n-1;j++)
{ p=k*n+j; a[p]=a[p]/d;}
for (j=0;j<=m-1;j++)
{ p=k*m+j; b[p]=b[p]/d;}
for (j=k+1;j<=n-1;j++)
for (i=0;i<=n-1;i++)
{ p=i*n+j;
if (i!=k)
a[p]=a[p]-a[i*n+k]*a[k*n+j];
}
for (j=0;j<=m-1;j++)
for (i=0;i<=n-1;i++)
{ p=i*m+j;
if (i!=k)
b[p]=b[p]-a[i*n+k]*b[k*m+j];
}
}
for (k=n-1;k>=0;k--)
if (js[k]!=k)
for (j=0;j<=m-1;j++)
{ p=k*m+j; q=js[k]*m+j;
t=b[p]; b[p]=b[q]; b[q]=t;
}
free(js);
return(1);
}
const n = 6;
int nLine, nRow, nSubLine;
double head, subhead;
double c[n][n+1];
double hh; for (nLine = 0; nLine < n; nLine++)
{
// 如果该系数为0,则将此行与后面的行进行交换
if ( c[nLine][nLine] == 0 )
{
for ( nRow = 0; nRow < n + 1; nRow++ )
{
hh = c[nLine][nRow];
c[nLine][nRow] = c[nLine+1][nRow];
c[nLine+1][nRow] = hh;
}
}
head = c[nLine][nLine];
// 1将每一行的c[nLine][nLine]项的系数变为1
for (nRow = nLine; nRow < n+1; nRow++)
c[nLine][nRow] = c[nLine][nRow] / head;
// 2将每一列的c[nLine][nLine]下面的系数变为0
for (nSubLine = 0; nSubLine < n; nSubLine++)
{
if ( nSubLine == nLine )
continue;
subhead = c[nSubLine][nLine];
for (nRow = nLine; nRow < n+1; nRow++)
c[nSubLine][nRow] -= c[nLine][nRow]*subhead;
}
}