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

📄 shuzu.cpp

📁 这是一个实现二位数组存储的小程序
💻 CPP
字号:
# include<stdio.h>
# define MAXN 100
int i,j,k,q,P;
void mat_transpose(int a[MAXN][3],int c,int i,int j) 
{
	int m,n,t,p,q,col;
	int b[MAXN][3];
	int e[MAXN][MAXN];
	m=a[0][0];
	n=a[0][1];
	t=a[0][2];
	b[0][0]=n;
	b[0][1]=m;
	b[0][2]=t;
	if(t>0)
	{
		q=1;
		for(col=0;col<n;col++)
			for(p=1;p<=t;p++)
			if(a[p][1]==col)
			{
				b[q][0]=a[p][1];
				b[q][1]=a[p][0];
				b[q][2]=a[p][2];
				q++;
			}
	}
	printf("转置后的b数组为:\n");
   for(q=0;q<c;q++)
	{
		for(p=0;p<3;p++)
			printf(" %d",b[q][p]);
		    printf("\n");
	}
  printf("还原为转置数组\n");
  for(p=0;p<j;p++){
	   for(q=0;q<i;q++)
		   e[p][q]=0;
   } 
      for(p=1;p<c;p++)
	   e[b[p][0]][b[p][1]]=b[p][2];
   
   for(p=0;p<j;p++){
	   for(q=0;q<i;q++)
		   printf("%3d",e[p][q]);
	   printf("\n");
   }
}


void change(int t[MAXN][MAXN],int i,int j){
	int p,c=1;
	int a[MAXN][3];
	for(p=0;p<i;p++)
	{
	for(q=0;q<j;q++)
		if(t[p][q]!=0){

			a[c][0]=p;
			a[c][1]=q;
			a[c][2]=t[p][q];
			c++;
		}
		else ;
	}
	a[0][0]=i;
	a[0][1]=j;
	a[0][2]=c;
	printf("a三元数组为:\n");
    for(q=0;q<c;q++)
	{
		for(p=0;p<3;p++)
			printf(" %d",a[q][p]);
		    printf("\n");
	}
    mat_transpose(a,c,i,j);
}


void main()
{
	int i,j,q,p;
	printf("请按顺序输入稀疏矩阵行数i,列数j\n");
	scanf("%d,%d",&i,&j);
    int t[MAXN][MAXN];
	for(p=0;p<i;p++)
		for(q=0;q<j;q++){
		printf("请输入t[%d][%d]\n",p,q);
	    scanf("%d",&t[p][q]);
	}
		printf("t矩阵为:\n");
	for(q=0;q<i;q++)
	{
		for(p=0;p<j;p++)
			printf("%3d",t[q][p]);
		    printf("\n");
		
	}
	change(t,i,j);
}


    

⌨️ 快捷键说明

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