二维数组:行列互换/求最大值及其所在位置/求各行各列的和/矩阵乘积/深入理解二维数组

本文主要是介绍二维数组:行列互换/求最大值及其所在位置/求各行各列的和/矩阵乘积/深入理解二维数组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

二维数组
1.定义 只有行号可以省略,初始化 全部初始化/部分初始化/不初始化
2.元素引用
3.存储形式 :顺序存储 按行存储
4.深入理解二维数组

#include<stdio.h>
#include<stdlib.h>#define M 2
#define N 3int mian()
{int a[M][N] = {{1,2,3},{4,5,6}};//int a[M][N] = {1,2,3};按顺序赋值int i,j;printf("a = %p\n",a); printf("a = %p\n",a+1); for(i =0;i<M;i++){for (j=0;j<N;j++){printf("%p-->%d",&a[i][j],a[i][j]);}printf("\n");}	exit(0);
}

行列互换

#include<stdio.h>
#include<stdlib.h>#define M 2
#define N 3static void change(void)
{int a[M][N] = {1,2,3,4,5,6},b[N][M];
//错误。数组名是常量 不能放在等号的左边	a = {1,2,3,4};int i,j;for(i =0;i<M;i++){for (j=0;j<N;j++){printf("%d ",a[i][j]);b[j][i] = a[i][j];}printf("\n");}	for(i =0;i<N;i++){for (j=0;j<M;j++){printf("%d ",b[i][j]);}printf("\n");}	
}int main(){change();exit(0);}

求最大值

#include<stdio.h>
#include<stdlib.h>#define M 2
#define N 3static void max(void)
{int a[M][N] = {17,27,3,48,50,66};
//错误。数组名是常量 不能放在等号的左边	a = {1,2,3,4};int i,j;int max = a[0][0],row =0,colum =0;for(i =0;i<M;i++){for (j=0;j<N;j++){if(max <a[i][j]){max =a[i][j];row=i;colum= j;}}}	printf("max:a[%d][%d] =%d ",row,colum,a[row][colum]);
}int main(){//change();max();exit(0);}

求和

#include<stdio.h>
#include<stdlib.h>#define M 5
#define N 4static void sum(void)
{int a[M][N] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};int i,j;for(i = 0; i < 4; i++)
{for(j = 0; j < 3; j++){a[4][3] += a[i][j];a[4][j] += a[i][j];a[i][3] += a[i][j];}
}for(i = 0; i < 5; i++){for(j = 0; j < 4; j++){printf("%4d", a[i][j]);}}int main(){//change();//max();sum();exit(0);}

矩阵乘积

#include<stdio.h>
#include<stdlib.h>#define M 2
#define N 3
#define K 2static void mul(void)
{int a[M][N] = {1,2,3,4,5,6};int b[N][K] = {1,0,0,1,1,0};int c[M][K] = {0};int i,j,k;for(i = 0; i < M; i++){for(j = 0; j < K; j++){for(k = 0; k<N; k++)c[i][j] += a[i][k] * b[k][j];}}int main(){//change();//max();//sum();mul();exit(0);}

深入理解二维数组
多个一维数组

这篇关于二维数组:行列互换/求最大值及其所在位置/求各行各列的和/矩阵乘积/深入理解二维数组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/988826

相关文章

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

深入理解go中interface机制

《深入理解go中interface机制》本文主要介绍了深入理解go中interface机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前言interface使用类型判断总结前言go的interface是一组method的集合,不

深入解析Java NIO在高并发场景下的性能优化实践指南

《深入解析JavaNIO在高并发场景下的性能优化实践指南》随着互联网业务不断演进,对高并发、低延时网络服务的需求日益增长,本文将深入解析JavaNIO在高并发场景下的性能优化方法,希望对大家有所帮助... 目录简介一、技术背景与应用场景二、核心原理深入分析2.1 Selector多路复用2.2 Buffer

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优