用c语言把对称数组的一维数组转变为二维的矩阵
时间: 2024-06-10 22:05:39 浏览: 93
输出对称矩阵的算法-数据结构第五章讲义
好的,我明白了。可以使用如下代码将对称数组的一维数组转换为二维矩阵:
```
#include <stdio.h>
#define ROWS 3
#define COLS 3
int main()
{
int arr[6] = {1, 2, 3, 4, 5, 6};
int matrix[ROWS][COLS];
int i, j, k = 0;
// 将一维数组转换为二维矩阵
for(i = 0; i < ROWS; i++)
{
for(j = 0; j < COLS; j++)
{
if(i <= j)
{
matrix[i][j] = arr[k++];
}
else
{
matrix[i][j] = matrix[j][i];
}
}
}
// 打印二维矩阵
for(i = 0; i < ROWS; i++)
{
for(j = 0; j < COLS; j++)
printf("%d ", matrix[i][j]);
printf("\n");
}
return 0;
}
```
在这个示例中,我们首先声明了一个大小为6的对称数组,然后定义了一个3x3(ROWS x COLS)大小的矩阵。接下来,我们使用两个嵌套的for循环来遍历矩阵中的每个元素,然后根据索引位置将对称数组中的值复制到矩阵中。在赋值过程中,如果行号小于列号,则将矩阵中对应的位置值设为行列交换位置的值。最后,我们使用另外一个嵌套的for循环来打印生成的二维矩阵。
阅读全文