C语言一维数组转二维数组

假设,一维数组有25个元素 分别是 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35把它转成二维数组 排成 5X5的矩阵且从小到大排列 如: 11 12 13 14 1516 17 18 19 2021 22 23 24 2526 27 28 29 3031 32 33 34 35 写出这段程序 用Tubor C写 把一维数组a[25] 转换成 b[5][5] 最好有有说明 详细点

1、我们先是定义一个二级指针和行列变量【int **array,row,column;】。

2、然后我们编写输入行列的语句。

3、为其开辟一个一个一维装着一维数组的数组。

4、接下来我们使用【array[i]=(int *)malloc(sizeof(int)*column);】为数组再次产生一个新的装着数组的数组。

5、然后我们就可以为其赋值并输出。

6、运行程序后我们就可以看到这样的效果了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-01

1、一维数组的声明包括如下结构:类型变量名[N],其中N是你要定义的一维数组长度。

下面我们就通过一个例子声明一个int类型的数组,并且进行数组的赋值以及输出。

2、在cpp文件main()函数中输入以下语句。

inta[10];//声明一维整形数组,数组长度为10。

for (int i =0;i<10;i++)

{

a[i]=i;

cout<<i<<endl;

}

return0;

然后ctrl+F5运行,我们可以看到如下结果:在i行输出的是a[i]。

3、二维数组的声明结构:类型变量名[M][N],其中M代表行数,N代表列数,下面我们也通过一个例子声明一个整形(int)的二维数组,并且进行相应的赋值与输出。

4、在main()函数中输入以下代码。

inta[4][5];//二维数组声明。

inti,j;

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

{

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

{

a[i][j]=(i+1)+(j+1);

cout<<a[i][j]<<"  ";

}

cout<<endl;

}

return0;

然后ctrl+F5运行,结果输出的内容是二维数组的每个元素,二维数组就是矩阵,数组的每个元素是相应的行号和列号的和。

本回答被网友采纳
第2个回答  推荐于2017-11-25
int a[25]={11,12.....};//大括号里面是25个数,偷懒不抄了
int b[5][5];//二维数组
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
b[i][j]=a[i*5+j];//注意理解下a[i*5+j]
}
}本回答被网友采纳
第3个回答  2013-07-30
#include <stdio.h>
// 实现从小到大的排序
void sort(int arr[], int n)
{
int i, j, temp;
for( i = 0; i < n; i++)
{
for(j = 0; j < i; j++)
{
if(arr[i] < arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}// 将一维数组转化为二维数组
void convert(int array[], int result[][5])
{
int i, j, temp, point = 0;
for( i = 0; i < 5; i++)
for(j = 0; j < 5; j++)
result[i][j] = array[ point++];
}
void print(int result[][5])
{
int i, j, temp;
for( i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
printf("%d\t", result[i][j]);
printf("\n");
}
}
int main()
{
int array[25] = {11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35};
int result[5][5];
sort(array, 25);
convert(array, result);
print(result);
return 0;
}
希望你看明白,不懂再问啊。
第4个回答  2018-06-26

代码如下:

void fun(char *a)

{

int b[3][3]={0};

int i=0;

int j=0;

while(*a)

{

if(*a == '\n')

{

i++;

j=0;

}

b[i][j++]=*a-'0';

}

}。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

本回答被网友采纳
相似回答