C语言一维数组转换为二维数组
一维转二维代码示例:
#include <stdio.h>
#include <stdlib.h> #define ROW 3
#define COL 2 int main(int argc, char *argv[])
{
int arr1D[] = {,,,,,};
int arr2D[ROW][COL];
int i,j;
//一维维整型数组转换为二维整型数组
for(i=;i<ROW;i++)
{
for(j=;j<;j++)
{
arr2D[i][j]=arr1D[i*COL+j];
}
}
//二维整型数组打印显示
for(i=;i<ROW;i++)
{
for(j=;j<COL;j++)
{
printf("%d ", arr2D[i][j]);
}
printf("\n");
}
system("pause");
return ;
}
这里提供一种将二维转换为一维的思路:
转换成二维数组以后怎么才能用更简单的方式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个元素。
C语言一维数组转换为二维数组的更多相关文章
- js一维数组转换为二维数组
function arrTrans(num, arr) { // 一维数组转换为二维数组 const iconsArr = []; // 声明数组 arr.forEach((item, index) ...
- C语言中如何将二维数组作为函数的参数传递
今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不 ...
- java基础5 (一维)数组和二维数组
本文知识点(目录): 一维数组(一维数组的概念.优点.格式.定义.初始化.遍历.常见异常.内存分析以及常见操作(找最大值.选择排序.冒泡排序等等)) 二维数组(二维数组的遍历.排序.查找.定义. ...
- 以杨辉三角为例,从内存角度简单分析C语言中的动态二维数组
学C语言,一定绕不过指针这一大难关,而指针最让人头疼的就是各种指向关系,一阶的指针还比较容易掌握,但一旦阶数一高,就很容易理不清楚其中的指向关系,现在我将通过杨辉三角为例,我会用四种方法从内存的角度简 ...
- C语言学习笔记 (005) - 二维数组作为函数参数传递剖析
前言 很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错: //对于一个2行13列int元素的二维数组 //函数f的形参形式 f(int daytab[2][13]) {...} / ...
- 将List转换为二维数组(result)
result的数据结构为List<Map<String,Object>> //将List转换为二维数组String[][] String[][] z = new String[ ...
- C#的一维数组和二维数组定义方式:
一维数组: //一维数组定义与初始化 ,, };//第一种方式 , , }; //第二种方式 int[] one3; //第三种方式 one3=,,}; 二维数组: //二维数组定义与初始化 //不规 ...
- C# 数组、一维数组、二维数组、多维数组、锯齿数组
C# 数组.一维数组.二维数组.多维数组.锯齿数组 一.数组: 如果需要使用同一类型的对象,就可以使用数组,数组是一种数据结构,它可以包含同一类型的多个元素.它的长度是固定的,如长度未知的情况下,请 ...
- 【ruby题目】以|为分割点,将arr转换为二维数组
#以|为分割点,将arr转换为二维数组 arr = ['] tmp = [] tmp2 = [] for x in arr tmp << x if x != '|' tmp2.push A ...
随机推荐
- virtio-win 驱动
Direct downloads are available for the .iso, .vfd, and qemu-ga installers. Stable virtio-win iso: ht ...
- 超市RFID结算系统项目进度与总结
超市RFID结算系统项目进度与总结 超市RFID结算系统本周末(明天演示),目前进度如下: 一.后台PHP端已经完成了大部分的工作,包括以下: 1.数据库的建立(目前只包括用户表.商品信息表.购物车表 ...
- 苹果App Store开发者帐户从申请,验证,到发布应用(1)
app store为开发者提供四种类型的申请: 个人ios开发者计划$99/年 公司ios开发者计划$99/年 企业ios开发者计划$299/年 高校ios开发者计划免费 在这里主要介绍一下公司ios ...
- C# Expression表达式笔记
整理了一下表达式树的一些东西,入门足够了 先从ConstantExpression 开始一步一步的来吧 它表示具有常量值的表达式 我们选建一个控制台应用程序 ConstantExpression _ ...
- AndroidManifest.xml文件
AndroidManifest.xml常用标签解读 1.全局篇(包名,版本信息) 2.组件篇(四大组件) Activity Service Content Provider Broadcast Rec ...
- bzoj3932
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1326 Solved: 480[Submit][Sta ...
- APPcache
<!DOCTYPE html> <html manifest="example.appcache"> <head> <title>& ...
- TortoiseSVN使用简介(收藏)
TortoiseSVN使用简介 1.安装及下载client 端 2.什么是SVN(Subversion)? 3.为甚么要用SVN? 4.怎么样在Windows下面建立SVN Repository? 5 ...
- JavaScript 开发工具webstrom使用指南
本文给大家推荐了一款非常热门的javascript开发工具webstrom,着重介绍了webstrom的特色功能.设置技巧.使用心得以及快捷键汇总,非常的全面. 看到网上一篇介绍webstrom的文章 ...
- CSS 文本、字体、链接
CSS 文本属性可定义文本的外观. 通过文本属性,您可以改变文本的颜色.字符间距,对齐文本,装饰文本,对文本进行缩进,等等. 缩进文本 把 Web 页面上的段落的第一行缩进,这是一种最常用的文本格式化 ...