矩阵基本操作算法

这篇具有很好参考价值的文章主要介绍了矩阵基本操作算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目描述:

题目描述
根据主函数和头文件提示,编写子函数

void matrixInput(int (*mat)[COL]);
void matrixPrint(int *mat[ROW]);
void matrixAddT(int *mat);
​
分别实现矩阵的输入,输出,与自身的转置相加:

void matrixInput(int (*mat)[COL]);: 输入int类型的矩阵元素,用方阵mat存储;
void matrixPrint(int *mat[ROW]); :输出方阵mat中的各个元素;
void matrixAddT(int *mat); :计算方阵mat与自身转置的和,结果存储在mat中。
Hint:请注意三个子函数的传入参数类型各不相同。

输入格式
输入一个三行三列的方阵 A,每个元素均为 int 类型。

输出格式
输出一个三行三列的方阵 B,每个元素均为 int 类型,B=A+A 
T
 。

输入样例1
1 2 3
4 5 6
7 8 9
​
输出样例1
2 6 10 
6 10 14 
10 14 18 
​
输入样例2
0 1 0
1 0 0
0 0 -1
​
输出样例2
0 2 0 
2 0 0 
0 0 -2 
​

算法:

思路:

利用上三角遍历,实现矩阵转置相加文章来源地址https://www.toymoban.com/news/detail-766292.html

代码实现:
# include<stdio.h>
# include<stdlib.h>
# include<string.h>
# include<ctype.h>
#define ROW 3
#define COL 3

void matrixInput(int (*mat)[COL]){
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            //输入
            scanf("%d",&mat[i][j]);
        }
    }
}
void matrixPrint(int *mat[ROW]){    
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            //打印输出
            printf("%d ",mat[i][j]);
        }
        printf("\n");
    }
}
void matrixAddT(int *mat){
    int temp;
    for(int i=0;i<3;i++){
        for(int j=i;j<3;j++){//遍历上三角
            if(i==j){//对角线上的加自身
                *(mat+i*3+j)+=*(mat+i*3+j);
            }
            else{
                temp=*(mat+i*3+j);//记录原值
                *(mat+i*3+j)+=*(mat+j*3+i);//上边的要加下边
                *(mat+j*3+i)+=temp;//下边要加上边的
            }
        }
    }
}

到了这里,关于矩阵基本操作算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB(一)基本操作与矩阵输入

    此篇文章是我在B站学习时所做的笔记,主要对MATLAB做了简单的介绍,代码部分为亲自动手演示过的,方便复习用。此篇文章仅供学习参考,禁止转载! 提示:以下是本篇文章正文内容,下面案例可供参考 Operators(操作员):+ - * / 结果由计算机显示为 Ans 优先组中从左到右的优

    2023年04月08日
    浏览(80)
  • Matlab —— 02 基本操作与矩阵输入

    1. help 功能:便于快速了解指令的使用 ex: 查询 pi 的简明介绍 Question 通过 matlab 计算出下列算式结果 Answer (1) (2) 或 (3) (4) 2. who 功能:便于快速了解变量类型 3. clear 功能:清除已经添加到工作区的变量 原先的工作区: 命令行操作: 当前的工作区: 4. format 功能:更全面

    2024年02月11日
    浏览(35)
  • 2.MATLAB篇——基本操作与矩阵输入

    Note: sqrt()为开根,exp(1)=e,pi=π,log()为In() + - * / ^ help () 变量的方式 查看变量类型who()、whos() : ans:answer i,j:complex number Inf:∞ eps: 很小的数 NaN:not a number pi:π iskeyword()查看 Note: 不能用来命名 消除workspace中的变量clear() format用法 Style 结

    2024年02月06日
    浏览(41)
  • 用三元组表实现稀疏矩阵的基本操作

    目录 问题描述 数据结构 算法设计 算法流程图  源代码  运行结果      ​    编写程序用三元组表实现稀疏矩阵的按列转置操作。 本设计使用三元组表实现。 程序中设计了三个函数: 1.函数InitSPNode()用来建立一个稀疏矩阵的三元组表。     首先输入行数、列数和非零元的

    2024年02月03日
    浏览(36)
  • Matlab基本操作和矩阵输入(郭彦甫视频学习笔记)

    who/whos         查看工作区当前变量 clear         清空工作区的所有变量(慎用) clear  valuable         清除变量valuable clc             清空命令行窗口 clear all         清除工作区所有变量 close all         关闭所有显示的图片 一行代码太长需要换行写可以在后面加 ... 

    2024年02月06日
    浏览(32)
  • 顺序表基本操作算法——基础代码(C语言)

     创建一个顺序表(数据元素个数为5), 输出顺序表中的所有数据元素 查找第3个位置上的元素 查找元素15是否在顺序表中,如果在,请输出该元素在顺序表中的位置 在顺序表中的第1个位置插入数据0 删除刚刚插入的元素 输出顺序表中的所有数据元素 运行结果如下  

    2024年02月06日
    浏览(45)
  • 【操作系统】几种基本页面置换算法的基本思想和流程图

      在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换

    2024年02月16日
    浏览(47)
  • 数据结构:定长顺序串(SString)基本操作的算法描述(C语言)

    作者在学习数据结构时,发现鲜有完全按照 C 语言描述的算法操作,这让习惯于写 .c 而不是 .cpp 的初学者很是头疼。本文将基于 C 语言描述算法操作,如有错漏还望大佬们指正。 本文将按照严惠敏所著《数据结构(C语言版)》所做的函数原型声明进行算法描述,由于C语言不支

    2024年02月07日
    浏览(69)
  • 二叉排序树的定义及基本操作(构造、查找、插入、删除)递归及非递归算法

    二叉排序树(Binary Sort Tree, BST),也称二叉查找树。 二叉排序树或者是一棵空树,或者是一棵具有下列特性的非空二叉树: 1) 若左子树非空,则左子树上所有结点均小于根结点的值; 2) 若右子树非空,则右子树上所有结点均大于根结点的值;

    2024年02月08日
    浏览(58)
  • 数据结构和算法学习记录——初识二叉树(定义、五种基本形态、几种特殊的二叉树、二叉树的重要性质、初识基本操作函数)

    目录 二叉树的定义 二叉树具体的五种基本形态 1.空树 2.只有一个节点 3.有左子树,但右子树为空 4.有右子树,但左子树为空  5.左右两子树都不为空 特殊二叉树 斜二叉树 满二叉树  完全二叉树 二叉树的几个重要性质 初识二叉树的几个操作函数  二叉树T: 一个有穷的节点

    2024年02月03日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包