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

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

二维数组
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

相关文章

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

深入理解Redis大key的危害及解决方案

《深入理解Redis大key的危害及解决方案》本文主要介绍了深入理解Redis大key的危害及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危

MYSQL行列转置方式

《MYSQL行列转置方式》本文介绍了如何使用MySQL和Navicat进行列转行操作,首先,创建了一个名为`grade`的表,并插入多条数据,然后,通过修改查询SQL语句,使用`CASE`和`IF`函... 目录mysql行列转置开始列转行之前的准备下面开始步入正题总结MYSQL行列转置环境准备:mysq

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。