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

📄 5_2.txt

📁 C语言数据结构知识原代码 C语言数据结构知识原代码C语言数据结构知识原代码
💻 TXT
字号:
#include<stdio.h>
#define maxsize 100

typedef struct node{
 int i,j,v;             /*i,j,v分别为行号、列号、元素值*/
 }elem;
typedef struct smatrix{
   elem data[maxsize]; 
   int row,col,count;   /*row,col,count分别为行数、列数、总的元素个数*/
  }Smatrix;
int row=4,col=4;
creatematrix(Smatrix *x)
 {
  int i,count;       /*count为非零元素的个数*/
  printf("请输入矩阵中非零元素的个数:\n");
  scanf("%d",&count);
  printf("请按行号、列号、元素值输入:\n");
  for(i=0;i<count;i++)
   scanf("%d%d%d",&((x->data[i]).i),&((x->data[i]).j),&((x->data[i]).v));
  x->row=row;
  x->col=col;
  x->count=count;
 }

addmatrix(Smatrix a, Smatrix b,Smatrix *c)
 {
  int t1=0,t2=0,t=0,v;
  c->row=row;
  c->col=col;
  c->count=0;
  while(t1<a.count && t2<b.count){
     if((a.data[t1]).i==(b.data[t2]).i){
        if((a.data[t1]).j==(b.data[t2]).j){
          v=(a.data[t1]).v+(b.data[t2]).v;
           if(v!=0){
            (c->data[t]).i=(a.data[t1]).i;
            (c->data[t]).j=(a.data[t1]).j;
            (c->data[t]).v=v;
            t++;t1++;t2++;
            c->count++;
            }
           else{
            t1++;t2++;
           }
          }
           else
            if((a.data[t1]).j<(b.data[t2]).j){
             (c->data[t]).i=(a.data[t1]).i;
             (c->data[t]).j=(a.data[t1]).j;
             (c->data[t]).v=(a.data[t1]).v;
             t++;t1++;
             c->count++;
            }
             else{
             (c->data[t]).i=(b.data[t2]).i;
             (c->data[t]).j=(b.data[t2]).j;
             (c->data[t]).v=(b.data[t2]).v;
             t++;t2++;
             c->count++;
             }
      }
     else
       if((a.data[t1]).i<(b.data[t2]).i){
        (c->data[t]).i=(a.data[t1]).i;
        (c->data[t]).j=(a.data[t1]).j;
        (c->data[t]).v=(a.data[t1]).v;
        t++;t1++;
        c->count++;
       }
       else{
        (c->data[t]).i=(b.data[t2]).i;
        (c->data[t]).j=(b.data[t2]).j;
        (c->data[t]).v=(b.data[t2]).v;
        t++;t2++;
        c->count++;
      }
    }
  while(t1<a.count){
        (c->data[t]).i=(a.data[t1]).i;
        (c->data[t]).j=(a.data[t1]).j;
        (c->data[t]).v=(a.data[t1]).v;
        t++;t1++;
        c->count++;
   }
  while(t2<b.count){
        (c->data[t]).i=(b.data[t2]).i;
        (c->data[t]).j=(b.data[t2]).j;
        (c->data[t]).v=(b.data[t2]).v;
        t++;t2++;
        c->count++;
       }
   }

main()
{
 Smatrix A,B,C;
 int i=0;
 creatematrix(&A);
 creatematrix(&B);
 addmatrix(A,B,&C);
 printf("\n");
 for(i=0;i<C.count;i++)
  printf("%d %d %d\n",(C.data[i]).i,(C.data[i]).j,(C.data[i]).v);
}

⌨️ 快捷键说明

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