什么是面粉改良剂:怎样改才能正确运行?

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 08:50:20
#include<stdio.h>
void sum(float a[],float b[],float c[],int m,int n);
void multi(float a[],float b[],float c[],int m,int p,int n);
void change(float a[],int n,int x,int y);
void basic_line_transforms(float a[],int m,int n);
void basic_line_transforms2(float a[],int m,int n);
float value(float b[],int n);
int rank(float a[],int m,int n);
int judge(float a[],int m,int n);
void n1_solution(float a[],int n,int m,float x[]);
void transform(float a[],int m,int n);
void accompany(float a[],int n,float b[]);
void contra(float a[],int n,float b[]);
void n2_solution_gen(float b[],int m,int n,float x[]);
void n2_solution_spe(float b[],int m,int n,float x[]);
main()
{int i,m=2,n=3;
float a[6]={1,1,2,2,3,5};
float x[10];
printf("%d",rank(a,m,n));
n1_solution(a,m,n,x);
for(i=0;i<m;i++)
printf("%+.5e ",x[i]);
printf("\n");
getch();
}

int rank(float a[],int m,int n)
{int i,s;
float b[100];
for(i=0;i<n*m;i++)
b[i]=a[i];
basic_line_transforms(b,m,n);
for(i=0,s=0;i<m;i++)
if(b[(i+1)*n-1])
s++;
return s;
}
void change(float a[],int n,int x,int y)
{int i;
float t;
for(i=0;i<n;i++)
{t=a[n*x+i];
a[n*x+i]=a[n*y+i];
a[n*y+i]=t;
}
}
void basic_line_transforms2(float a[],int m,int n)
{int i,j,k,l,s;
float t;
s=m<n?m:n;
for(i=0,k=1;k<s;i++,k++)
{if(a[i*n+k]==0)
{for(j=i;j<m;j++)
if(a[j*n+i]!=0)
change(a,n,i,j);
if(j==m)
k++;
}
else
for(j=i+1;j<=m;j++)
{t=a[j*n+k]/a[i*n+k];
for(l=0;l<n;l++)
a[j*n+l]-=a[i*n+l]*t;
}
}
}
void basic_line_transforms(float a[],int m,int n)
{int i,j,k,l,s;
float t;
s=m<n?m:n;
for(i=0,k=0;k<s;i++,k++)
{if(a[i*n+k]==0)
{for(j=i;j<m;j++)
if(a[j*n+i]!=0)
change(a,n,i,j);
if(j==m)
k++;
}
else
for(j=i+1;j<=m;j++)
{t=a[j*n+k]/a[i*n+k];
for(l=0;l<n;l++)
a[j*n+l]-=a[i*n+l]*t;
}
}
}

void n1_solution(float a[],int n,int m,float x[])
{int i,r;
float b[100];
r=rank(a,m,n);
for(i=0;i<n*(n-1);i++)
b[i]=a[i];
basic_line_transforms(b,r,n);
for(i=0;i<n*(n-1);i++)
b[i]=b[n*(n-1)-i];
basic_line_transforms2(b,r,n);
for(i=0;i<n*(n-1);i++)
b[i]=b[n*(n-1)-i];
for(i=0;i<n-1;i++)
{if(b[i*n+i]==0)
continue;
else
x[i]=b[(i+1)*n-1]/b[i*n+i];
}
}
求方程组的解

晕死....

????????????????????????????

重起 换机!