概述
一维转二维代码示例:
#include <stdio.h> #include <stdlib.h> #define ROW 3 #define COL 2 int main(int argc, char *argv[]) { int arr1D[] = {1,2,3,4,5,6}; int arr2D[ROW][COL]; int i,j; //一维维整型数组转换为二维整型数组 for(i=0;i<ROW;i++) { for(j=0;j<2;j++) { arr2D[i][j]=arr1D[i*COL+j]; } } //二维整型数组打印显示 for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) { printf("%d ", arr2D[i][j]); } printf("n"); } system("pause"); return 0; }
这里提供一种将二维转换为一维的思路:
转换成二维数组以后怎么才能用更简单的方式a[m][n]去表达呢?如果用那个表达式的话就太麻烦了,我要进行大量的操作,容易出问题。
答:这个可以用宏来实现。举个例子说,比如你定义一个大小为100的一维数组A,然后你需要别人输入m=8,n=9(很多情况别人不可能按照你的意图来刚好用m和n整除一维数组的下表最大值,也就是说那个一维数组只需要保证足够大就可以了),然后你希望得到一个8*9的二维矩阵B[8][9]。
引用这个二维矩阵的时候,直接使用B[3][4]来引用第三行第四列的元素?
用宏定义(以下宏定义并没有上机调试,只是提供思路)
#define B[(x)][(y)] A[((x*m)+(y%n)]
解释一下:x*m,加入你需要B[3][4],那么就是对应一维数组第3*8+4%9=28个元素。
转载于:https://www.cnblogs.com/shuqingstudy/p/5219279.html
最后
以上就是怕孤单心情为你收集整理的C语言一维数组转换为二维数组的全部内容,希望文章能够帮你解决C语言一维数组转换为二维数组所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复