PTA 6-24 稀疏矩阵求和

本题实现稀疏矩阵的求和运算。

函数接口定义:

int add_mat(elem a[],int t1,elem b[],int t2, elem c[]);//求a+b

其中 t1 和 t2 表示稀疏矩阵a的长度和稀疏矩阵b的长度,函数返回a+b的长度。

裁判测试程序样例:

#include <stdio.h> #define M 10 //行 
#define N 10 //列 
typedef struct { 
int row, col; //行号、列号 
int val; 
}elem; 
void input(elem a[],int m); 
void show_mat(elem a[],int n); 
int add_mat(elem a[],int t1,elem b[],int t2, elem c[]); 
void input(elem a[],int m) {
int i; 
for(i=0;i<m;i++) 
scanf("%d%d%d",&a[i].row,&a[i].col,&a[i].val); 
} 
void show_mat(elem a[],int n)//输出 { 
int i; 
for(i=0;i<n;i++) 
printf("%d %d %d\n",a[i].row,a[i].col,a[i].val); } 
int main() { int t,m,n; elem a[M*N],b[N*M],c[N*M]; 
scanf("%d%d",&m,&n); input(a,m); input(b,n); 
t=add_mat(a,m,b,n,c);//c=a+b 
show_mat(c,t); return 0; } /* 请在这里填写答案 */

输入样例:

第一行为矩阵行和列,接下来为两个矩阵

3 2
0 0 1
0 1 3
2 1 2
0 1 -3
1 1 2

输出样例:

0 0 1
1 1 2
2 1 2

代码实现:

int add_mat(elem a[],int t1,elem b[],int t2,elem c[])
{elem z;int s=0;                       int flag=1;for(int k=0;k<t1;k++)           {flag=1;for(int p=0;p<t2;p++)       {if(a[k].row==b[p].row&&a[k].col==b[p].col){flag=0;if(a[k].val+b[p].val!=0){c[s].row=a[k].row;c[s].col=a[k].col;c[s].val=a[k].val+b[p].val;s++;}}}if(flag){c[s].row=a[k].row;c[s].col=a[k].col;c[s].val=a[k].val;s++;}}for(int k=0;k<t2;k++)   //kokoko            {flag=1;for(int y=0;y<t1;y++){if(b[k].row==a[y].row&&b[k].col==a[y].col){flag=0;continue;}}if(flag){c[s].row=b[k].row;c[s].col=b[k].col;c[s].val=b[k].val;s++;}}for(int q=0;q<s;q++)                          {for(int w=1;w<s;w++){if(c[w-1].row>c[w].row){z=c[w-1];c[w-1]=c[w];c[w]=z;}}}return s;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我的C++奇迹之旅:内联函数和auto关键推导和指针空值

文章目录 &#x1f4dd;内联函数&#x1f320; 查看内联函数inline方式&#x1f309;内联函数特性&#x1f309;面试题 &#x1f320;auto关键字(C11)&#x1f320; auto的使用细则&#x1f309;auto不能推导的场景 &#x1f320;基于范围的for循环(C11)&#x1f320;范围for的…

【2023年软考架构师】案例真题回忆版

说明:内容仅为案例真题回忆版,有些内容仅为原题相关内容延伸,非原题。仅关注知识点即可。 试题① 大数据 某网作为某电视台在互联网上的大型门户入口,某一年成为某奥运会中国大陆地区的特权转播商,独家全程直播了某奥运会全部的赛事,积累了庞大稳定的用户群,这些用户在使…

C语言----找出10个整数中的最大值

今天让我们来看看如何找出10个数的最大值吧。 题目描述 今天杰克在做数学题目的时候产生了思考&#xff0c;我应该怎么才能找出10个数的最大值呢&#xff0c;给大家一道题目&#xff0c;帮帮杰克吧&#xff0c;现有数组int arr[] { 1,2,15,4,8,6,23,8,9,10 };&#xff0c;使用…

【Consul】基于Golang实现Consul服务的注册、注销、修改、监控注册的服务变化、实时同步服务信息机制

【Consul】基于Go实现Consul服务的注册、注销、修改、监控注册的服务变化、实时同步服务信息机制 大家好 我是寸铁&#x1f44a; 总结了一篇【Consul】基于Go实现Consul服务的注册、注销、修改、监控注册的服务变化、实时同步服务信息机制✨ 这应该是目前全网最全的使用golang手…

软考简答题

1.质量属性效用树 1.主要关注性能&#xff0c;可用性&#xff0c;安全性和可修改性&#xff08;升级&#xff09;进行分析 2.架构风格 2.1.分类 1. 解释器&#xff08;interpreter&#xff09;&#xff1a;灵活性最高&#xff0c;建模为有向无环图&#xff0c;采用工作流方…

go中的常用的关键字

目录 一:前言 二:select 三:defer 四:panic 和 recover 五:make 和 new 一:前言 上一节中,我们重点介绍了go语言中的for关键字的使用以及重点注意的地方,这一节我们用一篇文章,介绍下常用的关键字以及注意事项。 二:select select语句用于处理多个通信操作…

AttributeError: ‘FreeTypeFont‘ object has no attribute ‘getsize‘

说明&#xff1a;在一次程序读取字体样式&#xff0c;想要获取字体尺寸时&#xff0c;报下面的错误&#xff1b; AttributeError: FreeTypeFont object has no attribute getsize问题 # 加载字体样式和设置字体大小font ImageFont.truetype("SourceCodePro-Bold.ttf&quo…

网络原理 - HTTP / HTTPS(5)——https协议

目录 一、HTTPS是什么 为什么要进行加密 二、“加密” 是什么 三、HTTPS的工作过程 &#xff08;1&#xff09;引入对称加密 对称密钥的特点&#xff1a; &#xff08;2&#xff09;引入非对称加密 非对称加密的特点&#xff1a; &#xff08;3&#xff09;中间人攻击…

JavaScript流程控制语句

目录 前言: 1.JavaScript的组成: 1.1ECMAScript: 1.2DOM (Document Object Model): 1.3BOM (Browser Object Model) 2.js的写法: 2.1内部写法&#xff1a; 2.2 外部写法&#xff1a; 3.流程控制语句: 3.1从这开始&#xff0c;代码更具有逻辑性: 3.2从这开始&#xff0c…

数据结构之顺序表的相关知识点及应用

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 目录 顺序表的概念及结构 顺序表的分类 顺序表的实现 在顺序表中增加数据 在顺序表中删除数据 在顺序表中查找数据 顺序表源码 顺序表的概念…

安全的通信协议HTTPS被攻击改采用什么防护方案

随着互联网的发展&#xff0c;保护用户在网上交换的敏感信息的安全性变得至关重要。HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;作为一种安全的通信协议&#xff0c;通过加密数据传输&#xff0c;保护用户的隐私和数据安全。然而&#xff0c;尽管HTTPS提…

Java配置自定义校验

1、自定义注解State message、groups、payload package com.zhang.anno;import com.zhang.validartion.StateValidation; import jakarta.validation.Constraint; import jakarta.validation.Payload;import java.lang.annotation.*;import static java.lang.annotation.Eleme…

Django -- 自动化测试

概述 测试是一种例行的、不可缺失的工作&#xff0c;用于检查你的程序是否符合预期。 测试可以划分为不同的级别。一些测试可能专注于小细节&#xff08;比如某一个模型的方法是否会返回预期的值&#xff1f;&#xff09;&#xff0c; 一些测试则专注于检查软件的整体运行是否…

list的使用

前言 我们前面已经对string和vector进行了学习使用&#xff0c;以及对他们的底层进行了模拟实现&#xff01;本期我们继续学习STL的另外一个容器---list。 本期内容介绍 什么是list&#xff1f; list的常用接口 什么是list? 还是来看看官方的文档说明&#xff01; 这里通过…

钉钉事件订阅前缀树算法gin框架解析

当钉钉监测到发生一些事件&#xff0c;如下图 此处举例三个事件user_add_org、user_change_org、user_leave_org&#xff0c;传统的做法是&#xff0c;我们写三个if条件&#xff0c;类似下图 这样字符串匹配效率比较低&#xff0c;于是联想到gin框架中的路由匹配算法&#xff0…

jangow-01-1.0.1 靶机渗透

信息收集部分&#xff1a; 1.nmap存活探测&#xff1a; 2.nmap端口探测&#xff1a; 3.nmap服务探测&#xff1a; 这里应该是21和80端口&#xff0c;&#xff0c;但21需要登陆访问&#xff0c;用不了&#xff0c;问题不大。 web&#xff1a; 页面&#xff1a; 发现RCE: 1.we…

docker容器环境安装记录(MAC M1)(完善中)

0、背景 在MAC M1中搭建商城项目环境时&#xff0c;采用docker统一管理开发工具&#xff0c;期间碰到了许多环境安装问题&#xff0c;做个总结。 1、安装redis 在宿主机新建redis.conf文件运行创建容器命令&#xff0c;进行容器创建、端口映射、文件挂载、以指定配置文件启动…

75.将插槽传递给子组件不要在模板 ref 中使用响应式对象

将插槽传递给子组件 在某些情况下&#xff0c;我们想将父组件的所有插槽传递给子组件。当创建一个为子组件添加一些功能的包装组件时&#xff0c;这尤其有用。 假设我们有一个 Child.vue 组件&#xff0c;它有两个命名插槽&#xff0c; top 和 bottom &#xff1a; <templat…

YCKCOJ清明进阶专题题解

总的来说还是有难度的&#xff0c;这也能二分&#xff1f;&#xff1f;&#xff1f; 本套题需要大家尽量思考 A题 DARLING in the FRANXX 实际上这是一部好看的日漫&#xff0c;本题的背景主要以 叫龙 叫龙 叫龙为主&#xff0c;它是一种生物。。。好了言归正传&#xff0c;抓…

【SCI绘图】【曲线图系列1 python】绘制扫描点平滑曲线图

SCI&#xff0c;CCF&#xff0c;EI及核心期刊绘图宝典&#xff0c;爆款持续更新&#xff0c;助力科研&#xff01; 本期分享&#xff1a; 【SCI绘图】【曲线图1 python】绘制扫描点平滑曲线图 1.环境准备 python 3 import numpy as np import pandas as pd import proplot …