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

📄 number.cpp

📁 解N元一次方程从文件读入整数 N, 然后读入N*( N+1)矩阵
💻 CPP
字号:
#include<iostream.h> 
#include<fstream.h> 
#include<math.h> 
#include<stdlib.h> 

void get(double[100][100],int &); 
void work(double[100][100],int); 
void pr(double[100][100],int); 

void main() 
{ 
    double x[100][100]; 
    int n; 
    get(x,n); 
    work(x,n); 
    pr(x,n); 
} 

void get(double x[100][100],int &n) 
{ 
    ifstream in("input.txt");  
    in>>n; 
    for(int i=0;i<n;i++) 
       for(int j=0;j<n+1;j++) 
          in>>x[i][j];  
} 

void work(double x[100][100],int n) 
{ 
    int q[100],p,i,j,k; 
    double min,l; 
    for(i=0;i<n;i++) 
       q[i]=0; 
    for(k=0;k<n;k++) 
	{ 
       p=-1; 
       min=10000; 
       for(i=0;i<n;i++) 
          if (!q[i] && x[i][k]!=0 && min-1e-10>fabs(x[i][k])) 
		  { 
             min=fabs(x[i][k]); 
             p=i; 
		  } 
       if (p==-1) 
	   { 
          ofstream out("output.txt"); 
          out<<"这个方程组无解或有无穷个解。"<<endl; 
	   } 
       else 
          q[p]=1; 
       for(i=0;i<n;i++) 
          if (i!=p) 
		  { 
             l=x[i][k]/x[p][k]; 
             for(j=0;j<n+1;j++) 
             x[i][j]=x[i][j]-l*x[p][j]; 
		  } 
	} 
} 
void pr(double x[100][100],int n) 
{ 
	ofstream out("output");
    for(int i=0;i<n;i++) 
       for(int j=0;j<n;j++) 
    if (fabs(x[i][j])>1e-10) 
	{ 
         out<<"x["<<i+1<<"]="<<x[i][n]/x[i][j]<<endl; 
         break; 
	}  
}

⌨️ 快捷键说明

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