1. 程式人生 > >c++ 將行列式化為上三角行列式,並求值。

c++ 將行列式化為上三角行列式,並求值。

c++ 將行列式化為上三角行列式,並求值。

#include<stdio.h>
#include<iostream>
using namespace std;

void op(double *a,int row,int col,int temp)
{		double NUM1,NUM2;
		NUM1=a[temp*col+temp];
		for(int i=temp+1;i<row;i++)
		{
				NUM2=a[i*col+temp];
			for(int j=temp;j<col;j++)
			{
				a[i*col+
j]=a[i*col+j]+NUM2*a[temp*col+j]*(-1)/NUM1; } } } int main(){ int row, col; double value=1; cout<<"請輸入行數"; cin>>row; cout<<"請輸入列數"; cin>>col; double *a=(double*)malloc(row*col*sizeof(double)); cout<<"請輸入所有元素"<<endl; for(int i=0;i<col*row;i++) {
cin>>a[i]; } cout<<"———輸入成功———"<<endl; int k=row; if(k>col) k=col; for(int i=0;i<k-1;i++) { op(a,row,col,i); cout<<"———計算過程———"<<endl; for(int i=0;i<col*row;i++) { cout<<a[i]<<" "; if((i+1)%col==0) cout<<endl; } }
cout<<"———結果如下———"<<endl; for(int i=0;i<col*row;i++) { cout<<a[i]<<" "; if((i+1)%col==0) cout<<endl; } for(int i=0;i<k;i++) value*=a[i*col+i]; cout<<"行列式的值為"<<value<<endl; system("pause"); return 0; }

執行效果如下:
在這裡插入圖片描述