列主元高斯消去法,大哥们帮忙改改错

来源:百度知道 编辑:UC知道 时间:2024/06/21 09:17:43
#include<stdio.h>
#include<math.h>
void main()
{
int i,j,n;
float p,a[10][11];
printf("please input n:");
scanf("d%",&n);
for(i=0;i<n;i++)
for(j=0;j<=n;j++)
{
printf("please input a[%d][%d]:" i,j);
scanf("%f",&p);
a[i][j]=p;
}
void colpivot(float a[10][11], int n, float x[10]);
for (i=0;i<n;i++)
printf("x[%d]=%f\n",i,x[i]);
}

float colpivot(float a[10][11],int n,float x[10])
{
int i,j,m,k;
float p, l;
m=k;
for (i=k+1;i<n;i++)
if(fabs(a[i][k])>fabs(a[m][k]))
m=i;
if(m!=k)
for(j=k;k<=n;j++)
{p=a[m][n];a[m][j]=a[k][j];a[k][j]=p}

for (k=1;k<n;k++)
{
for(i=k+1;i<=n;i++)
{
l=a[i][k]/a[k][k];
for (j=k+1;j<=n+1;j++)
{

共修改9处,具体位置请参考以下程序中的注释位置:

//---------------------------------------------------------------------------
#include<stdio.h>
#include<math.h>
void colpivot(float a[10][11], int n, float x[10]); /*注意这里,函数声明建议放在这里*/
void main()
{
int i,j,n;
float p,a[10][11],x[10];/*注意这里*/
printf("please input n:");
scanf("%d",&n); /*注意这里,是%d,不是d%*/
for(i=0;i<n;i++)
for(j=0;j<=n;j++)
{
printf("please input a[%d][%d]:" ,i,j);/*注意这里*/
scanf("%f",&p);
a[i][j]=p;
}
colpivot(a,n,x); /*注意这里*/
for (i=0;i<n;i++)
printf("x[%d]=%f\n",i,x[i]);
}

void colpivot(float a[10][11],int n,float x[10]) /*注意这里,这个函数不需要返回值*/
{
int i,j,m,k;
float p, l;
m=k;
for (i=k+1;i<n;i++)
if(fabs(a[i][k])>fabs(a[m][k]))
m=i;
if(m!=k)
for(j=k;k<=n;j++)
{p=a[m][n];a[m][j]=a[k][j];a