C语言实现 1.在一个二维数组中形成 n 阶矩阵,2.去掉靠边元素,生成新的 n-2 阶矩阵;3.求矩阵主对角线下元素之和:4.以方阵形式输出数组。

矩阵形式:

1 1 1 1 1

2 1 1 1 1

3 2 1 1 1

4 3 2 1 1

5 4 3 2 1

完整代码:

/*编写以下函数
1.在一个二维数组中形成如以下形式的 n 阶矩阵:
1 1 1 1 1 
2 1 1 1 1 
3 2 1 1 1 
4 3 2 1 1 
5 4 3 2 1
2.去掉靠边元素,生成新的 n-2 阶矩阵;
3.求矩阵主对角线下元素之和:
4.以方阵形式输出数组
*/

#include
#include


//全局变量,所有函数都可以访问到
int **arr;

//创建n阶矩阵
void func1(int n){
    // 要使用malloc函数动态分配内存
    arr = (int **)malloc(n * sizeof(int *));
    for(int i = 0; i < n; i++){
        arr[i] = (int *)malloc(n * sizeof(int));
    }
    // 创建数组
    for (int i = 0; i < n; i++){
        //先把所有的元素都赋值为1
        for (int k = 0; k < n; k++)
        {
            arr[i][k]=1;
        }
        //让后按照三角形的规律赋值
        for (int j = 0; j < i; j++){
            arr[i][j]=i+1-j;
        }
    }
}

//创建n-2阶矩阵
void func2(int n){
    //只需要调用n-2时的func1就可以
    func1(n-2);
}

//求矩阵主对角线下元素之和
int func3(int n){
    int sum=0;
    //循环累加对角线下的所有元素,只需要j

运行截图:

C语言实现 1.在一个二维数组中形成 n 阶矩阵,2.去掉靠边元素,生成新的 n-2 阶矩阵;3.求矩阵主对角线下元素之和:4.以方阵形式输出数组。_第1张图片

C语言实现 1.在一个二维数组中形成 n 阶矩阵,2.去掉靠边元素,生成新的 n-2 阶矩阵;3.求矩阵主对角线下元素之和:4.以方阵形式输出数组。_第2张图片

你可能感兴趣的:(c语言,C经典100题,矩阵)