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

📄 test.cpp

📁 n阶行列式求值的C++类. 输入行列式各分量后
💻 CPP
字号:
#include <iostream.h>
#include <math.h>


class hhs
{
private:
    int n;

	double *a;
public:
	void weishu(int a)
	{
		n = a;
	}

	
	double action(double *a,int n)
	{
		int i,j,k,flag;
		double tem;
		double ass;
		ass=1.0;
		if(*a==0)
		{
			for(i=1,flag=0;i<n;i++)
				if(*(a+i*n)!=0)
				{
					for(j=0;j<n;j++)
						
					{
                         tem = *(a+j);
						 *(a+j) = *(a+i*n+j);
						 *(a+i*n+j) = tem;
					}
					ass = -ass;
					flag = 1;
					break;
				}

		}
      
		
		

		
       if (flag==0)
		   return (0);
		ass *= *a;
		
	
		while(n>1)
		{	
			
			for(j=1;j<n;j++)
				for(i=1;i<n;i++)
                    *((a+i*n)+j) = *((a+i*n)+j)-(*(a+j))*(*(a+i*n))/(*a);
               
                k=0;
				for(i=0;i<n*n;i++)
					if(i>n&&i%n!=0)
					*(a+k++) = *(a+i);

            
              	n--;

				if(*a==0)
		{
			for(i=1,flag=0;i<n;i++)
				if(*(a+i*n)!=0)
				{
					for(j=0;j<n;j++)
					{
                         tem = *(a+j);
						 *(a+j) = *(a+i*n+j);
						*(a+i*n+j) = tem;
					}
					ass = -ass;
					flag = 1;
					break;
				}

		}

		   if(flag==0)
			   return (0);
		   ass *= *a;
		
		}
		return ass;

	}

};

void main()
{
	hhs eg;
	int i,n;

	double *p;
	cout<<"输入行列式的阶数:  n = ";
	cin>>n;
	double *b =new  double [n*n];
    p = b;
	cout<<endl;
	cout<<"输入"<<n*n<<"个数值:"<<endl;
	for(i=0;i<n*n;i++)
		
		{
			cout<<"b["<<i/n<<","<<i%n<<"] = ";
			cin>>*(b+i);
		}
    eg.weishu(n);

	cout<<endl;	
	cout<<"complet = "<<eg.action(p,n)<<endl<<endl;
	delete b;
       
	

}

⌨️ 快捷键说明

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