z19911121z
2015-10-28 03:13C语言怎么实现matlab定义的空矩阵
简单的说怎么实现上面图片显示的功能?主要困扰我的就是怎么实现空矩阵,,,把矩阵赋值为NULL,显示的是0;如果只是开辟内存空间不赋值,显示的又是随机数。怎么解决啊?
#include
#include
#include
#include
void main()////
{
int M,M1,**M2;
int i, j,y;
M = (int **)malloc(sizeof(int *));
for (i = 0; i < 1;i++)
{
for (j = 0; j < 3; j++)
{
*(M + i) = (double *)malloc(sizeof(double) * 3);
}
}
for (i = 0; i < 3;i++)
{
M[0][i] = 1;
}
scanf("%d", &y);
if (y>5)
{ //如何定义M1为空矩阵
/*M1 = (int **)malloc(sizeof(int *));
for (i = 0; i < 1; i++)
{
for (j = 0; j < 3; j++)
{
*(M1 + i) = (double *)malloc(sizeof(double) * 3);
}
}
for (i = 0; i < 3; i++)
{
M1[0][i] = NULL;
}*/
}
else
{
M1= (int **)malloc(sizeof(int *));
for (j = 0; j < 3; j++)
{
*M1 = (double *)malloc(sizeof(double) * 3);
}
for (i = 0; i < 3; i++)
{
M1[0][i] = 2;
}
}
M2 = (int **)malloc(sizeof(int *) * 2);
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
{
*(M2 + i) = (double *)malloc(sizeof(double) * 3);
}
}
for (j = 0; j < 3; j++)
{
M2[0][j] = M[0][j];
}
for (j = 0; j < 3; j++)
{
M2[1][j] = M1[0][j];
}
//输出:
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d\t", M2[i][j]);
}
printf("\n");
}
}
我需要的是输入6的话 显示的是1 1 1
- 点赞
- 回答
- 收藏
- 复制链接分享
2条回答
为你推荐
- 计算数组中奇数和偶数元素的平均值(程序填空)
- c++
- 1个回答
- Matlab带参数求矩阵的秩
- matlab
- 1个回答
- 采用交换法翻转矩阵的时候,为什么需要两重循环?
- 2个回答
- 如何在MATLAB中实现哈夫曼编码?
- 哈夫曼编码
- matlab
- 二叉树
- 1个回答