C语言:使用malloc函数创建一个指定行数和列数的二维数组,计算 其二维数组对角线上元素的和 如: 输入:3 3 1 2 3 4 5 6 7 8 9 输出:25
时间: 2023-12-27 20:05:21 浏览: 60
详解C语言用malloc函数申请二维动态数组的实例
5星 · 资源好评率100%
好的,这是一个关于使用malloc函数创建指定行列的二维数组,并计算其对角线元素和的C语言程序。
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m, n, i, j, sum = 0;
int **arr;
printf("请输入行数和列数:\n");
scanf("%d %d", &m, &n);
// 使用malloc函数动态分配二维数组空间
arr = (int **)malloc(m * sizeof(int *));
for (i = 0; i < m; i++)
arr[i] = (int *)malloc(n * sizeof(int));
// 输入二维数组元素值
printf("请输入二维数组元素值:\n");
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
scanf("%d", &arr[i][j]);
// 计算对角线元素和
for (i = 0; i < m; i++)
sum += arr[i][i];
// 输出结果
printf("二维数组对角线元素和为:%d\n", sum);
// 释放二维数组空间
for (i = 0; i < m; i++)
free(arr[i]);
free(arr);
return 0;
}
```
以上程序中,首先通过scanf函数输入行数和列数,然后使用malloc函数动态分配二维数组空间,并通过scanf函数输入二维数组的元素值。接着,通过两重循环遍历二维数组,计算其对角线上的元素和。最后,输出计算结果,并使用free函数释放二维数组空间。
阅读全文