⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 列主消元.cpp

📁 计算方法上机列主消元
💻 CPP
字号:
#include<iostream.h>
#include<stdlib.h>
#define a(i,j)  a[i*(n+1)+j]
float f(float p)
{ 
	if(p<0) return -p;
    else  return p;
}
void SS(float a[],int n)
{ int q,j;
	for(q=0;q<n;++q)
  {
	cout<<endl;
    for(j=0;j<n+1;++j)
	  cout<<a(q,j)<<"  ";
  }
  cout<<endl;
}
void main()
{ 
  int i,j,n,q;
  cout<<"请输入数组的维数:";
  cin>>n;
  float *a,p;  
  a=new float[n*(n+1)];
	  cout<<"输入数组a:("<<n<<"*"<<n<<")"<<endl;
  for(i=0;i<n;++i)
    for(j=0;j<n;++j)
  cin>>a(i,j);
  cout<<"输入数组b:"<<endl;
  for(j=0;j<n;++j)
  cin>>a(j,n);
  SS(a,n);
  for(i=0;i<n-1;++i)
  {  
	 p=a(i,i);q=i;
     for(j=i+1;j<n;++j)
       if(f(p)<f(a(j,i))) {p=a(j,i);q=j;}
     if(p==0) { cout<<"det(A)=0";exit(1);}
	 if(q!=i)
     for(j=0;j<n+1;++j)
	 { 
	   p=a(q,j);
	   a(q,j)=a(i,j);
	   a(i,j)=p;
     }
     for(q=i+1;q<n;++q)
	  for(j=n;j>=i;--j)
	   a(q,j)-=a(i,j)*a(q,i)/a(i,i);
     SS(a,n); 
  }
  i=n-1;j=n;
  a(i,j)/=a(i,i);
  for(i=n-2;i>=0;i--)
  { 
	p=0;
    for(j=i+1;j<n;++j)
    p+=a(i,j)*a(j,n);
    a(i,n)=(a(i,n)-p)/a(i,i);
  }
  cout<<endl;
  for(i=0;i<n;++i)
  cout<<"x"<<i+1<<"="<<a(i,n)<<endl;
  delete a;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -