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

📄 nn.c

📁 本程序输入一个矩阵可以计算出其逆矩阵 具体要多大的矩阵 请自行在程序中修改程序头的 #define N
💻 C
字号:
#include<stdio.h>
#define N 3
int js(a,n)
int a[N][N],n;
{
	int b[N][N];
	int	h,i,j,t,total=0;
	if(n==2)
	{
		total=a[0][0]*a[1][1]-a[0][1]*a[1][0];
	}
	else if(n>2)
		for(h=0;h<n;h++)
		{
			for(i=0;i<N-1;i++)
			{
				for(j=0;j<N-1;j++)
					if(j<h)
						b[i][j]=a[i+1][j];
					else
						b[i][j]=a[i+1][j+1];
			}
			if(h%2==0)
				t=a[0][h]*js(b,n-1);
			else
				t=(-1)*a[0][h]*js(b,n-1);
			total=total+t;
		}
	return total;
}


void dsyzs(s,n,e)
int	s[N][N],n;
{
	int k[N][N];
	float f[N][N];
	float *g,temp;
	int i,j,z,q,x,y;
	g=&f[0][0];
	for(i=0;i<n;i++)
	{
		x=i;
		for(j=0;j<n;j++)
		{
			y=j;
			for(z=0;z<n-1;z++)
			{
				for(q=0;q<n-1;q++)
					if(q>=y&&z<x)
						k[z][q]=s[z][q+1];
					else if(z>=x&&q<y)
						k[z][q]=s[z+1][q]; 
					else if(z>=x&&q>=y)
						k[z][q]=s[z+1][q+1];
					else
						k[z][q]=s[z][q];
			}
			
			f[i][j]=js(k,n-1);
			//printf("%f\n",f[i][j]);
		}
	}
	for(i=0;i<N;i++)
		for(j=0;j<N;j++)
			if(((i+j)%2)!=0&&f[i][j]!=0)
				f[i][j]=-f[i][j];
	for(i=0;i<N;i++)
		for(j=i+1;j<N;j++)
		{
			temp=f[i][j];
			f[i][j]=f[j][i];
			f[j][i]=temp;
		}
	printf("伴随矩阵:\n");
	for(i=0;i<N;i++)
	{
		for(j=0;j<N;j++)
			printf("%f ",f[i][j]);
			printf("\n");
	}
	printf("逆矩阵:\n");
	for(i=0;i<N;i++)
		for(j=0;j<N;j++)
			f[i][j]=f[i][j]/e;
	for(i=0;i<N;i++)
	{
		for(j=0;j<N;j++)
			printf("%f ",f[i][j]);
			printf("\n");
	}			

	
}
 
main()
{
	int mat[N][N];
	int *p,t,i,j,r;
	float temp;
	float f[N][N];
	p=&mat[0][0];
	printf("请输入一个%dX%d的矩阵A:\n",N,N);
	for(p=&mat[0][0];p<(&mat[0][0])+N*N;p++)
		scanf("%d",p);
	printf("原矩阵为:\n");
    for(p=&mat[0][0];p<(&mat[0][0])+N*N;p++)
	{
		if((p-(&mat[0][0])+1)%N==0)
			printf("%d\n",*p);
		else
			printf("%d  ",*p);
	}
	t=js(mat,N);
	printf("|A|= %d\n",t);
	if(t!=0)                 
		dsyzs(mat,N,t);
	else
		printf("因为|A|=0所以A没有逆矩阵。\n");
    
}

⌨️ 快捷键说明

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