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

📄 1213.cpp

📁 自己写的有关计算矩阵的小程序
💻 CPP
字号:
#include "iostream.h"

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

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

void init(double x[100][100],int &n) 
{ 
	ifstream infile; 
	infile.open("equations.in",ios::in); 
	infile>>n; 
	for(int i=0;i<n;i++)
	{
		for(int j=0;j
		{
			infile>>x[i][j]; 
		}
	infile.close(); 
} 

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
		{ 
			p=-1; 
			min=10000; 
			for (i=0;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 outfile; 
					outfile.open("equations.out",ios::out); 
					outfile<<"这个方程无解或有无穷个解."<outfile.close(); 
					exit(0); 
				} 
				else 
					q[p]=1; 
					for(i=0;iif (i!=p) 
					{ 
						l=x[i][k]/x[p][k]; 
						for(j=0;j
						{
							x[i][j]=x[i][j]-l*x[p][j]; 
						} 
					} 
				} 
	
void pr(double x[100][100],int n) 
{ 
	ofstream outfile; 
	outfile.open("equations.out",ios::out); 
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			if (fabs(x[i][j])>1e-10) 
			{ 
				outfile<<"x["< printf("452325\n");
				printf("462102\n");
				printf("452132\n");
				printf("121232\n");
				printf("025113\n");
				printf("请输入求知量的个数:");
				scanf("%d",&n);
				printf("\n请输入系数矩阵和右端向量\n");
				//分配内存空间
				a=newdouble*[n];
				for(i=0;i 
				{
					a[i]=newdouble[n+1];
				}
				//输入数据
				for(i=0;i 
				{
					for(j=0;j<=n;j++)
					{
						scanf("%lf",(*(a+i)+j));
					}
				}
				for(k=0;k
				{
					for(i=k+1;i 
					{
					client=a[i][k]/a[k][k];
					}
				}
				for(j=k+1;j 
				{
					a[i][j]=a[i][j]-client*a[k][j];
					a[i][n]=a[j-1][n]-client*a[k][n];
				}
				a[n-1][n]=a[n-1][n]/a[n-1][n-1];
				for(i=n-2;i>=0;i--)
				{
					for(j=i+1;j 
					{
						temp+=a[i][j]*a[j][n];
						a[i][n]=(a[i][n]-temp)/a[i][i];
					}
				}
				for(i=0;i
				{
					printf("X%d=%lf\n",i+1,a[i][n]);
				}
			}
		}
	}
}

⌨️ 快捷键说明

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