c - 用于矩阵和双指针
问题描述
方阵的大小作为标准输入输入(输入值的范围是 2 到 10)。创建一个打印输入大小的单位矩阵的程序。
单位矩阵是从左上角到右下角的对角线(主对角线)为 1 且其他全部为零的矩阵。
例如)输入:5
结果 :
1 0 0 0 0\n
0 1 0 0 0\n
0 0 1 0 0\n
0 0 0 1 0\n
0 0 0 0 1\n
我的代码:
int main(){
int n;
scanf("%d", &n);
int **matrix = malloc(sizeof(int *) * n);
for (int i = 0; i < n; i++)
{
matrix[i] = malloc(sizeof(int) * n);
memset(matrix[i], 0, sizeof(int) * n);
}
for (int i = 0; i < n; i++)
{
matrix[i][i] = 1;
printf("%d ", matrix[i][i]);
}
printf("\n");
for (int i = 0; i < n; i++)
{
free(matrix[i]);
}
free(matrix);
return 0;
}
..有什么错误?
解决方案
您需要一个双循环来打印输出:
for (int i = 0; i < n; i++)
{
matrix[i][i] = 1; // set identity
}
for (int j=0; j<n; j++)
{
for (int i = 0; i < n; i++)
{
printf("%d ", matrix[j][i]);
}
printf("\n");
}
推荐阅读
- javascript - 如何从 AJAX (或 idk )中仅获取“蒸汽”
- python - 对数伽玛函数的快速算法
- python - 为什么这个请求返回 400?(Python3 请求)
- java - Java:数得这么快?
- javascript - 使用 JavaScript 从二维数组计算加权平均值
- python - DJANGO - AJAX request.files 为空
- firebase - 列表
不是 List 的子类型 - spring-boot - Spring @value 计算
- python - Flask文件上传期间出现400 Bad Request错误?
- jsf - primefaces Tabclose 事件在侦听器中接收空选项卡