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

📄 reversematrix.txt

📁 该程序是通过C语言编写的
💻 TXT
字号:
#include<stdio.h>//实现矩阵的转置

#define maxsize 10000

typedef int datatype;

typedef struct 
{
	int i,j;
	datatype v;
}trituplenode;

typedef struct
{
 	trituplenode data[maxsize];
 	int m,n,t;
 }tritupletable;

void input(tritupletable *a)
{  
	int i,j,k=0;
 	datatype x;
	printf("please input the weishu of the matrix:\n");
 	scanf("%d%d",&a->m,&a->n);
	printf("\nenter %d*%d numbers:\n",a->m,a->n);
 	for(i=0;i<a->m;i++)
 		for(j=0;j<a->n;j++)
		{ 
 	  		scanf("%d",&x);
 	  		if(x)
 	  		{ 
				a->data[k].i=i;
 	  			a->data[k].j=j;
 	  			a->data[k].v=x;
 	  			k++;
 	  		}
 		}
	a->t=k;
 }
 
 void output(tritupletable *a)
 {
	int i,j,k;
  	for(i=0;i<a->m;i++)
  	{   
		for(j=0;j<a->n;j++)
  		{ 
  		 	for(k=0;k<a->t;k++)
  		 		if(a->data[k].i==i&&a->data[k].j==j)
					break;
  			if(k==a->t) 
				printf("%5d",0);
  			else
  				printf("%5d",a->data[k].v);
  		}
  		 printf("\n");
  }
}
  
void transmartix(tritupletable *a,tritupletable *b)
{  
	 int p,q,col;
   	 b->m=a->n; 
	 b->n=a->m;
   	 b->t=a->t;
   	 if(b->t==0)//该处应该是恒等于,而非等于
   	     printf("A=0\n");
   	 q=0;
   	 for(col=0;col<a->n;col++)
   		for(p=0;p<a->t;p++)
   		{   
   	   	  if(a->data[p].j==col)
   	   	   {  
   	   	   	  b->data[q].i=a->data[p].j;
   	   	   	  b->data[q].j=a->data[p].i;//该处有一个错误
   	   	   	  b->data[q].v=a->data[p].v;
   	   	   	  q++;
   	   	   }
   	   }
}
    
void main()
{
     tritupletable A,B;
     input(&A);
	 printf("output matrix A:\n");
     output(&A);
   	 transmartix(&A,&B);
	 printf("the result  of  the zhuanzhi of matrix A:\n");
     output(&B);
}
     	
 

⌨️ 快捷键说明

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