C语言程序设计作业2023/11/27

1. 任意输入一个3行3列的二维数组,求对角元素之和。

【实验过程】

#include <stdio.h>

int main() {

    int arr[3][3];

    int sum1 = 0,sum2 = 0;

    // 输入二维数组

    printf(“请输入三行三列的二维数组:\n”);

    for (int i = 0; i < 3; i++) {

        for (int j = 0; j < 3; j++) {

            scanf(“%d”, &arr[i][j]);

        }

    }

    // 计算主对角元素之和

    for (int i = 0; i < 3; i++) {

        sum1 += arr[i][i];

    }

    // 输出结果

    printf(“主对角元素之和为:%d\n”, sum1);

    // 计算副对角元素之和

    for (int i = 2, j = 0; i > 0, j < 3; i–, j++) {

        sum2 += arr[i][j];

    }

    // 输出结果

    printf(“副对角元素之和为:%d\n”, sum2);

    return 0;

}

【实验结果】

2. 通过编程实现矩阵转置。 矩阵转置在数学上的定义为: 设A为m×n阶矩阵(即m行n列),第i 行第j 列的元素是a(i , j)。定义A的转置为这样一个n×m阶矩阵B:满足B=a(j,i),即 b (i , j)=a (j , i)(B的第i行第j列元素是A的第j行第i列元素)

简单的矩阵转置如下图所示:

【实验过程】

#include <stdio.h>

int main(){

    int n, m;//n 表示行,m 表示列

    scanf(“%d%d”, &n, &m);//输入行和列

    int arr[n][m];

    for (int i = 0; i < n; i++){//首先进行矩阵置换前的二维数组初始化

        for (int j = 0; j < m; j++)

            scanf(“%d”, &arr[i][j]);//i 表示行 j表示列

    }

    for (int i = 0; i < m; i++){//而后将行和列进行交换,以此形成矩阵置换

        for (int j = 0; j < n; j++)

            printf(“%d”, arr[j][i]);//进行矩阵置换后,j变成了行 i变成了列

        printf(“\n”);

    }

    return 0;

}

【实验结果】

3. 杨辉三角,又称贾宪三角形、帕斯卡三角形,是二项式系数在三角形中的一种几何排列。 通过编程在屏幕上打印出杨辉三角的前10行。

【实验过程】

#include <stdio.h>

int main(){

    int n, a[25][25]={0};

    for (int i=1; i<=10; i++) {

        a[i][1] = 1;

        for (int j=2; j<=i; j++)

            a[i][j] = a[i-1][j] + a[i-1][j-1];

    }

    //输出杨辉三角

    for (int i=1; i<=10; i++) {

        for (int j=1; j<=i; j++)

            printf(“%d “,a[i][j]);

        printf(“\n”);

    }

    return 0;

}

【实验结果】


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注