有关数据结构主题稀疏矩阵的问题 [英] Question on data structure topic sparse matrices

查看:105
本文介绍了有关数据结构主题稀疏矩阵的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

最后知道了.关于桑迪普·梅瓦拉(Sandeep Mewara)先生提到的事情的评论,我们将予以照顾.这就是我做的

那么这里面临的问题是我可以将转置的三元组表示形式转换为Row和Col
的矩阵形式吗?

Finally got it. Regards for the comments Mr. Sandeep Mewara mentioned things will be looked after. This is what I did

Well the problem faced here is can i transform the transposed 3-tuple representation to matrix form Row and Col

#include<stdio.h>
#include<conio.h>



void main()
{
 clrscr();
 int a[10][10],b[10][10];
 int m,n,p,q,t,col;
 int i,j;
 printf("enter the no of row and columns :\n");
 scanf("%d %d",&m,&n);

 for(i=1;i<=m;i++)
 {
   for(j=1;j<=n;j++)
   {
     printf("a[%d][%d]= ",i,j);
     scanf("%d",&a[i][j]);
     }
  }
printf("\n\n");

 printf("\n\nThe matrix is :\n\n");
for(i=1;i<=m;i++)
 {
   for(j=1;j<=n;j++)
   {
    printf("%d",a[i][j]);
     }
     printf("\n");
   }

t=0;
printf("\n\nthe non zero value matrix are :\n\n");
for(i=1;i<=m;i++)
{
  for(j=1;j<=n;j++)
  {

  if(a[i][j]!=0)
  {
   t=t+1;
   b[t][1]=i;
   b[t][2]=j;
   b[t][3]=a[i][j];
    }  }
}

printf("\n");
printf("\n\t R   C   V \n");
printf(" \n \t%d  %d  %d \n",m,n,t);
for(i=1;i<=t;i++)
{

 printf(" \n \t%d  %d  %d \n",b[i][1],b[i][2],b[i][3]);
  }
b[0][1]=n; b[0][2]=m; b[0][3]=t;
q=1;

printf("\n\nthe transpose of the matrix :\n ");
if(t>0)
{
 for(i=1;i<=n;i++)
 {
   for(j=1;j<=t;j++)
   {
    if(b[j][2]==i)
    {
      a[q][1]=b[j][2]; a[q][2]=b[j][1];
      a[q][3]=b[j][3]; q=q+1;
       }  }
     }  }
printf("\n\n");
printf(" %d %d %d\n",b[0][1],b[0][2],b[0][3]);
for(i=1;i<=t;i++)
{
 printf("%d %d %d\n",a[i][1],a[i][2],a[i][3]);
    }
 getch();
 }

推荐答案

很高兴见到您!
现在,明智地对其进行缩进,将变量名更改为更具描述性的变量,然后对其进行注释,以便您可以在三周时间内理解它! :laugh:
Glad to see you got it!
Now, indent it sensibly, change your variable names to more descriptive ones, and comment it so that you can understand it in three weeks time! :laugh:
void main()
    {
    clrscr();
    int a[10][10],b[10][10];
    int m, n, p, q, t, col;
    int i, j;
    printf("enter the no of row and columns :\n");
    scanf("%d %d", &m, &n);
    for (i = 1; i <= m; i++)
        {
        for (j = 1; j <= n; j++)
            {
            printf("a[%d][%d]= ", i, j);
            scanf("%d", &a[i][j]);
            }
        }
    printf("\n\n");
    printf("\n\nThe matrix is :\n\n");
    for (i = 1; i <= m; i++)
        {
        for (j = 1; j <= n; j++)
            {
            printf("%d", a[i][j]);
            }
        printf("\n");
        }
    t = 0;
    printf("\n\nthe non zero value matrix are :\n\n");
    for (i = 1; i <= m; i++)
        {
        for (j = 1; j <= n; j++)
            {
            if (a[i][j] != 0)
                {
                t = t + 1;
                b[t][1] = i;
                b[t][2] = j;
                b[t][3] = a[i][j];
                }
            }
        }
    printf("\n");
    printf("\n\t R   C   V \n");
    printf(" \n \t%d  %d  %d \n", m, n, t);
    for (i = 1; i <= t; i++)
        {
        printf(" \n \t%d  %d  %d \n", b[i][1], b[i][2], b[i][3]);
        }
    b[0][1] = n;
    b[0][2] = m;
    b[0][3] = t;
    q = 1;
    printf("\n\nthe transpose of the matrix :\n ");
    if (t > 0)
        {
        for (i = 1; i <= n; i++)
            {
            for (j = 1; j <= t; j++)
                {
                if (b[j][2] == i)
                    {
                    a[q][1] = b[j][2];
                    a[q][2] = b[j][1];
                    a[q][3] = b[j][3];
                    q = q + 1;
                    }
                }
            }
        }
    printf("\n\n");
    printf(" %d %d %d\n", b[0][1], b[0][2], b[0][3]);
    for (i = 1; i <= t; i++)
        {
        printf("%d %d %d\n", a[i][1], a[i][2], a[i][3]);
        }
    getch();
    }

这就是为您完成的缩进!


[已答应从未答应的列表中删除]

That''s the indent done for you!


[answered to remove from unanswered list]


这篇关于有关数据结构主题稀疏矩阵的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆