arrays - 如何正确填充 NxN 矩阵
问题描述
我一直在尝试创建一个 NxN 方阵(方阵的大小由用户确定),但似乎遇到了问题。显示的矩阵实际上是一个对称矩阵,这不是我想要的,因为我希望能够让每个值都保存一个唯一的整数。任何帮助是极大的赞赏。这是我的代码:
#include <stdio.h>
int main()
{
int i;
int j;
int size = 1;
int array [size][size];
printf ("Enter the size you would like for the nxn matrix: ");
scanf ("%d", &size);
printf ("Now enter elements into the matrix. \n");
for (i = 0; i < size; i++)
{
for (j = 0; j < size; j++)
{
printf ("[%d][%d] = ", i, j);
scanf ("%d", &array [i][j]);
}
}
printf ("------------------------\n\n");
printf ("the matrix is: \n\n");
for (i = 0; i < size; i++)
{
for (j = 0; j < size; j++)
{
printf (" %d ", array [i][j]);
}
printf ("\n");
}
return (0);
}
解决方案
#include <stdio.h>
#include <stdlib.h>
int main()
{
// Create variables
int i, j, size;
// Create 2D array
printf ("Enter the size you would like for the nxn matrix: ");
scanf ("%d", &size);
int *array = (int *)malloc(size * size * sizeof(int));
// Fill 2D array with values
printf ("Now enter elements into the matrix. \n");
for (i = 0; i < size; i++)
{
for (j = 0; j < size; j++)
{
printf ("[%d][%d] = ", i, j);
scanf ("%d", &array[i * size + j]);
}
}
printf ("------------------------\n\n");
// Display values of 2D array
printf ("the matrix is: \n\n");
for (i = 0; i < size; i++)
{
for (j = 0; j < size; j++)
{
printf ("%d", array[i * size + j]);
}
printf ("\n");
}
free(array);
return (0);
}
推荐阅读
- azure-active-directory - 如何使用 c# 以编程方式将 Azure AD 组添加到 SharePoint
- elixir - 重复的模块:毒药“混合释放”中指定的“Elixir.Poison.Encoder.Map”
- python - 如何在没有模型的情况下读取 keras 模型权重
- xamarin.forms - 启动屏幕棱镜 xamarin.forms
- excel - 删除excel中的重复行并将已删除的单元格留空
- 3d - 使用局部旋转 MaxScript 将对象与面法线对齐
- python - 同时运行 Python ZMQ Workers
- xbox - 如何通过 Microsoft 进行身份验证并检索游戏成就?
- css - 如何使用css突出显示选定的文本?
- wpf - WPF 样式中的数据触发器:更改内容不起作用