• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言实现稀疏矩阵

C语言实现稀疏矩阵

作者:Doublekai 字体:[增加 减小] 来源:互联网 时间:2017-05-28

Doublekai 通过本文主要向大家介绍了c语言实现矩阵乘法,c语言实现矩阵转置,c语言实现矩阵相乘,c语言实现矩阵求逆,c语言实现矩阵运算等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例为大家分享了C语言实现稀疏矩阵的具体代码,供大家参考,具体内容如下

#include "stdio.h"
#define maxsize 10
typedef struct
{
 int i,j; //非零元素的行、列 
 int v; //非零元素的值 
}Triple;
typedef struct
{
 Triple data[maxsize];
 int m,n; //矩阵的行、列  
}TSMarix;
InitTriple(TSMarix *M)
{
 int i,j,k,v,t;
 printf("请输入稀疏矩阵非零元素的个数:\n");
 scanf("%d",&v);
 for(k=1;k<=v;k++)
 {
  printf("请输入第%d个元素行、列和值:",k);
  scanf("%d%d%d",&i,&j,&t);
  //储存非零元素的下标和值: 
  M->data[k].i=i; 
  M->data[k].j=j;
  M->data[k].v=t;
 }
 
}
void displayMatrix(TSMarix *M)
{
  int i,j,p,q,k=1;
  for(p=0;p<M->m;p++)
 {
  for(q=0;q<M->n;q++)
   if(M->data[k].i==p&&M->data[k].j==q) //输出非零元素 
    {
     printf(" %d ",M->data[k].v);
     k++;
    }
   else printf(" 0 ");
  printf("\n");
  
 }
}
void display(TSMarix *M)
{
 int i,j,p,q;
 printf("请输入矩阵的行、列:\n");
 scanf("%d%d",&i,&j);
 M->m=i;M->n=j;
 for(p=0;p<M->m;p++)
 {
  for(q=0;q<M->n;q++)
   printf(" 0");
  printf("\n");
 
 }
  
}
main()
{
  TSMarix M;
  display(&M);
  InitTriple(&M);
  displayMatrix(&M);
  
}
</div>

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C语言实现稀疏矩阵
  • C语言实现矩阵翻转(上下翻转、左右翻转)
  • C语言科学计算入门之矩阵乘法的相关计算
  • C中实现矩阵乘法的一种高效的方法

相关文章

  • 2017-05-28String类的写时拷贝实例
  • 2017-05-28C语言编程中建立和解除内存映射的方法
  • 2017-05-28二叉树遍历 非递归 C++实现代码
  • 2017-05-28数据结构课程设计- 解析最少换车次数的问题详解
  • 2017-05-28详解C++设计模式编程中对状态模式的运用
  • 2017-05-28总结C/C++面试中可能会碰到的字符串指针题
  • 2017-05-28利用C++实现从std::string类型到bool型的转换
  • 2017-05-28解析C#中不一样的大小写转换
  • 2017-05-28解析C++中虚析构函数的作用
  • 2017-05-28深入C++ 函数映射的使用详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C语言运算符的优先级和结合性
    • 用C语言来实现一个简单的虚拟机
    • C++实现一维向量旋转算法
    • C语言中多维数组的内存分配和释放(malloc与free)的方法
    • C语言中char*和char[]用法区别分析
    • C++代码规范之命名规则
    • C++实现获取IP、子网掩码、网关、DNS等本机网络参数的方法
    • C++ 反射机制详解及实例代码
    • Linux下semop等待信号时出现Interrupted System Call错误(EINTR)解决方法
    • c语言打印输出双引号的方法示例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有