百度
360搜索
搜狗搜索

二维数组转为一维数组,C语言设计程序二维数组变一维怎么变详细介绍

本文目录一览: 二维数组和一维数组怎么转换?

这个可以用宏来实现。举个例子说,比如你定义一个大小为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语言一个二维数组如何转换成一个新的一维数组?

当然可以了。
例如:

#include

void main(){int i,j,k=0,a[2][2]={1,2,3,4},b[4];for(i=0;i<2;i++)for(j=0;j<2;j++){b[k]=a[i][j];k++;}for(k=0;k<4;k++)printf("%d ",b[k]);}

运行结果:

就是将一个2×2的二维数组的值按顺序赋给一个一维数组。

c语言二维数组变成一维数组的通项公式

二维数组就是一维数组 直接循环就行 例如 a[3][4] 可以直接用*p指向 然后 p++ 只要不超过3x4就行
#include

#define N 3#define M 4int main(){ int a[N][M]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},i,j,*p; p=(int *)a;//将二维数组a变成一维数组p for(i=0;i
<n;i++){ for(j="M*N,i=0;i<j;printf("%3d",p[i++]));//用p则按一维数组操作" printf("\n"); } return 0;}
这个很简单,因为二维数组就是一位数组的指针顺序,比如c[3][4],他的第7个元素恰好就是按顺序排的一维数组的第七个,所以可以简单的用指针首地址加上N来表示第N个数字,这个N是可以超过4的,直接用。只要补超过3*4-1就行。

对二维数组用两次循环,将其赋值到一维数组就够了。

举个例子,二维数组a[N][M],一维数组b[]

编写主函数部分:

int i,j,k=0;

for(i=0;i
<n;i++)
for(j=0;j
<m;j++)
b[k++]=a[i][j];

扩展资料:反之一维转二维

#include

#include

#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;

}
</col;j++)
</row;i++)
</row;i++)

</m;j++)
</n;i++)

二维数组和一维数组怎么转换的啊

很简单啊
首先知道二维数组的 行列数
计算出 元素个数
然后声明个 同样元素个数的 一维数组
然后 依次赋值
就OK了
1 2 3 4 5 6 Press any key to continue
#include

main()

{

int i,j,k=0,arry[2][3] ={{1,2,3},{4,5,6}};

int single[6]={0};

for (i=0;i<2;i++)

for (j=0;j<3;j++)

single[k++] =arry[i][j];

for (i=0;i<6;i++)

printf("%d ",single[i]);

}

数组时线性存储的,可以吧二维数组认为是一位数组处理

二维数组转化成一维数组需要通过遍历来实现,

你把二维想象成两行的表格,每个格子存了数据,吧一维的想象成一行的表格,每个格子存了数据,如果两行的要转成一行,那么一维数组的格子要是2维的两倍。二维的第一行赋值完了之后,进行第二行的赋值。

C语言设计程序二维数组变一维怎么变

对二维数组用两次循环,将其赋值到一维数组就够了。
举个例子,二维数组a[N][M],一维数组b[]
编写主函数部分:
int i,j,k=0;
for(i=0;i
<n;i++)
for(j=0;j
<m;j++)
b[k++]=a[i][j];

希望能帮到你 O(∩_∩)O~

最容易写的办法就是两个for循环遍历这个二维数组,将遍历的每个值保存在一维数组里。

二维数组怎么变一维这是不可能的

比如你输入了一个arr[10][10];

你要变成一维就会是十个arr1[10];

而且原本二维数组存储区相连的结构就会被破坏,不光没有任何作用反而会异常的麻烦和不方便。

char name[N][MAX_LEN]

是二维字符数组,也就是一维的字符串数组

其中name[i]是第i个串

这个是C字串的基础,你可参考下你的教材

提供一个最简单的办法:设原二维数组是int a[N][M];,再声明一个与a的元素类型兼容的指针,如int *p;,然后将a强制为(int *)型赋给p,即p=(int *)a;。这样操作后,用a仍然对原数组能进行二维数组操作,而用p就可按一维数组对原数组进行操作了(相当于将二维数组变成了一维数组p)。验证代码如下:

#include "stdio.h"#define N 3#define M 4int main(int argc,char *argv[]){ int a[N][M]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},i,j,*p; p=(int *)a;//将二维数组a变成一维数组p for(i=0;i
<n;i++){ for(j="M*N,i=0;i<j;printf("%3d",p[i++]));//用p则按一维数组操作" printf("\n"); } return 0;}运行结果如下图:

</m;j++)
</n;i++)

查询出来的二维数组怎么转换成以为一维数组

这个普遍采用遍历的方式,如果是php的话,直接一个foreach($arr as $val){}就可以将一个二维数组$arr 变成一个一维数组。当然其他编程语言,我感觉都是想通的,也可以采用如此的方式,实在不行就用for循环,直接将值取出,然后重新放到一个数组...

如何把一个二维数组中的数据存入一个一维数组?

将二维数组的第二行数据接着第一行存入一位数组即可,第三行及以后的依次存入即可,具体示例如下(将一个3×3的数组存入到一维数组中):
如图,成功将二维数组存到一维数组并输出!
可以通过循环遍历,存入到一维数组里面,其实本质上二维数组也是一维数组,只不过采用了另一种表达方式。
直接a[0[0]---a[0][8]赋给b[0]--b[8]就可以了,对于二维数组可以直接使用a[0][8]访问最后一个元素的。
for(i = 0; i < 3; i++)
for(j = 0; j < 3; j++)
{
b[i*3 + j] = a[i][j];
}
貌似不要等号哦
for(i=0;i<=3;i++)
for(j=0;j<=3;j++) d[i*3+j]=a[i][j];
直接a[0[0]---a[0][8]赋给b[0]--b[8]就可以了,对于二维数组可以直接使用a[0][8]访问最后一个元素的。
#include

int main(void)

{

int a[2][2]={1,2,3,4},b[4],i;

for (i = 0; i<4; i++)

b[i]=a[i/2][i%2];

}

或:

for(int length=0,length
<i;length++)
{

for(int length1=0;length1
<j;length1++)
{

int count=0;

//要放进去的新数组a

a[count]=Array[length][length1].ToString();

count++;

}

扩展资料:

a是一维数组的数组名,该数组有10个元素,依次表示为a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]。需要注意的是,a[10]不属于这一个数组的空间范围中。当在说明部分定义了一个数组变量后,编译程序会在内存空间中开辟一串连续的存储单元。对于数组而言,程序的执行部分使用的是数组变量而不是数组类型。

参考资料来源:百度百科-一维数组
</j;length1++)
</i;length++)

java 怎么把二维数组转换成一维数组

用循环就可以解决。。
把二维数组所有值取到一维数组中。
public static void main(String[] args) { int str2s[][] = {{ 11, 12 },{ 21, 22 } }; int strs[] = new int[4]; System.out.println(str2s.length); for (int i = 0; i < str2s.length; i++) { for (int j = 0; j < str2s[i].length; j++) { strs[i+j] = str2s[i][j]; } } }
public class Shuzu { public static void main(String[] args) { String[][] b = {{ "aa", "bb" },{ "cc", "dd" } };//二维数组特例 for (int i = 0; i < b.length; i++) { String[] c = (String[]) b[i];//使用强制转化 for (String str : c) { System.out.println(str); } } } }
java将二维数组转换成一维数组,主要是通过计算二维数组的所有数组大小,然后使用循环语句赋值,如下代码:
package com.qiu.lin.he;public class Ceshi { public static void main(String[] args) { int[][] m = { { 1, 23 }, { 2, 3, 4, 5 } }; int[] n; int len = 0; // 计算一维数组长度 for (int[] element : m) { len += element.length; } // 复制元素 n = new int[len]; int index = 0; for (int[] element : m) { for (int element2 : element) { n[index++] = element2; } } for (int i : n) { System.out.print(i + ",");//输出所有的数据 } }}运行结果如下:

阅读更多 >>>  c语言数组的用法,c语言数组如何使用

网站数据信息

"二维数组转为一维数组,C语言设计程序二维数组变一维怎么变"浏览人数已经达到21次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:二维数组转为一维数组,C语言设计程序二维数组变一维怎么变的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!