1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【行列转换】C语言二维数组入门

【行列转换】C语言二维数组入门

时间:2020-01-29 02:42:06

相关推荐

【行列转换】C语言二维数组入门

目录

1.简介

2.二维数组的声明格式

3.对二维数组元素的输出

4.二维数组的行列转换

4.1思路介绍

4.2代码实现

1.简介

二维数组的交换可以作为动态规划问题的基础,本文将详细讲述二维数组交换问题,以便读者后期更容易理解动态规划问题。

2.二维数组的声明格式

int num[3][4] ={1,2,3,4,5,6,7,8,9,10,11,12};

如此代码段,声明了一个三行四列的二维数组。我们可以把他理解为一个矩阵。

注意:数组是从0开始的。及元素1对应的是num [0][0];这点和坐标很相似

3.对二维数组元素的输出

这里我们首先用一维数组的元素输出进行类比

我们首先定义一个一维数组然后用这个例子来类比二维数组。我们使用一个变量i来控制数组元素的输出。

int a[3]={1,2,3};for ( i = 0; i < 3; i++){printf("%d",a[i]);}

接下来我将说明二维数组的输出方法

结合下图我们来直观的理解下二维数组的位置关系。我们可以看出i[0][0]是初始的第一排,然后我们把二维数组看成两个一维数组。

如图所示,我们直观看到,我们对二维数组num[i][j]进行遍历需要改变i和j的值。也就是两个for循环进嵌套,外层控制行,内层控制列。代码如下:

int num[3][4] ={1,2,3,4,5,6,7,8,9,10,11,12};int i,j;for ( i = 0; i < 3; i++){for ( j = 0; j < 4; j++){printf("%d\t",num[i][j]);}printf("\n\n");}

4.二维数组的行列转换

4.1思路介绍

(1)这里先介绍一下红酒杯交换法 。我们想把A,B两个酒杯内的液体互换,这时候我们需要一个空酒杯C,先把A中液体倒进C,然后把B中液体倒进A,然后在把C中液体倒进B。

(2)同理我们可以利用一个中间变量储存num [1][2]的值然后进行取赋给一个变量,然后在把他的镜像num [2][1]的值赋给他,最后将常量赋值回去。这就完成了互换。

示意图如下:

4.2代码实现

详细解释见注释:

/*实现二维数组的翻转*/#include<stdio.h>int main(int argc, char const *argv[]){int num[3][3]={//声明一个二维数组{1,2,3},{4,5,6},{7,8,9}};int i,n,cunt; //i,n进行行和列的计算,cunt进行承接for (i = 0; i < 3; i++)//打印原数组{for ( n = 0; n < 3; n++){printf("%d ",num[i][n]);}printf("\n");}for ( i = 0; i < 3; i++)//进行行的遍历{for( n = i; n < 3; n++)//进行列的遍历{ cunt=num [i][n]; //对空酒杯赋值num [i][n]=num [n][i];//交换num [n][i]=cunt; //再次赋值交换完毕}} printf("\n\n");for (i = 0; i < 3; i++) //打印输出{for ( n = 0; n < 3; n++){printf("%d ",num[i][n]);}printf("\n");}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。