20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises16

本文提供多个C语言程序实例,涵盖矩阵生成、元素求和等操作。包括生成特定矩阵并输出、计算矩阵边框元素和对角线元素之和等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises16

P749

在这里插入图片描述

/*
  编写一程序P749.C实现以下功能
  用键盘输入的整数产生5*5矩阵N,并按行输出该矩阵,每个元素占4个数位、右对齐。
    编程可用素材:
        printf("Please input an integer: ");
  程序的运行效果应类似地如图1和图2所示,图1中的5和图2中的7是从键盘输入的内容。

Please input an integer: 5

   5   6   7   8   9
   6   7   8   9  10
   7   8   9  10  11
   8   9  10  11  12
   9  10  11  12  13
图1 程序运行效果示例

Please input an integer: 7

   7   8   9  10  11
   8   9  10  11  12
   9  10  11  12  13
  10  11  12  13  14
  11  12  13  14  15
图2 程序运行效果示例
*/

#include <stdio.h>

#define N 5

int main(void)
{
    int arr[N][N];
    int i, j;
    int data;

    printf("Please input an integer: ");
    scanf("%d", &data);

    // 构造
    for ( i = 0; i < N; i++)
    {
        for ( j = 0; j < N; j++)
        {
            arr[i][j] = data + i + j;
        }
    }

    printf("\n");

    // 输出
    // 按行输出该矩阵,每个元素占4个数位、右对齐
    for ( i = 0; i < N; i++)
    {
        for ( j = 0; j < N; j++)
        {
            printf("%4d", arr[i][j]);
        }
        printf("\n");        
    }

    return 0;
}

P234

在这里插入图片描述

/*
 编写一程序P234.C实现以下功能
  求任意的一个m×m矩阵的第0行和最后一行所有数之和,m(2<=m<=20)及矩阵元素从键盘输入(只考虑int型)。
    编程可用素材:
        printf("Please input m: ");
        printf("\nPlease input array:\n");
        printf("\nSum = …\n"…);
  程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。

Please input m: 5
Please input array:
1    45   67  235   464
35   6    89  32342 8
347  9346 47  95    746
46   785  436 19434 634
3235 567  24  8465  32225

Sum = 45328
图1 程序运行效果示例
*/

#include <stdio.h>

#define N 20

int main(void)
{
    int m;
    int i, j;
    int arr[N][N];
    int sum = 0; // 第0行和最后一行所有数之和

    printf("Please input m: ");
    scanf("%d", &m);

    // 矩阵元素从键盘输入
    printf("\nPlease input array:\n");
    for ( i = 0; i < m; i++)
    {
        for ( j = 0; j < m; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }
    
    // 求和:第0行和最后一行所有数之和
    for ( i = 0; i < m; i++)
    {
        for ( j = 0; j < m; j++)
        {
            if(i==0 || i==m-1)    // 判断是第0行或最后一行
            {
                sum += arr[i][j];
            }
        }
    }

    // 输出
    printf("\nSum = %d\n",sum);
    
    return 0;
}

p235

在这里插入图片描述

/*
  编写一程序P235.C实现以下功能
  求任意的一个m×m矩阵的第0列和最后一列所有数之和,m(2<=m<=20)及矩阵元素从键盘输入(只考虑int型)。
    编程可用素材:
        printf("Please input m: ");
        printf("\nPlease input array:\n");
        printf("\nSum = …\n"…);
  程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。

Please input m: 5
Please input array:
1    45   67  235   464
35   6    89  32342 8
347  9346 47  95    746
46   785  436 19434 634
3235 567  24  8465  32225

Sum = 37741
图1 程序运行效果示例
*/

#include <stdio.h>
#define N 20

int main(void)
{
    int m;
    int i, j;
    int arr[N][N];
    int sum = 0; // 第0列和最后一列所有数之和

    printf("Please input m: ");
    scanf("%d", &m);

    // 矩阵元素从键盘输入
    printf("\nPlease input array:\n");
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < m; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }

    // 求和:第0行和最后一行所有数之和
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < m; j++)
        {
            if (j == 0 || j == m - 1) // 判断是第0列或最后一列
            {
                sum += arr[i][j];
            }
        }
    }

    // 输出
    printf("\nSum = %d\n", sum);

    return 0;
}

P732

在这里插入图片描述

/*
 编写一程序P732.C实现以下功能
  输入3行3列的矩阵,输出所有元素的累加和。
    编程可用素材:
        printf("Please input the 3x3 Matrix:\n");
        printf("\nsum=…\n"…);
  程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。

Please input the 3x3 Matrix:
9  20 13
16 51 79
32 8  6

sum=234
图1 程序运行效果示例
*/

#include <stdio.h>

int main(void)
{
    int arr[3][3];
    int i, j;
    int sum = 0;

    printf("Please input the 3x3 Matrix:\n");
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            sum += arr[i][j];
        }
    }

    printf("\nsum=%d\n", sum);
    return 0;
}

P218

在这里插入图片描述

/*
  编写一程序P218.C实现以下功能
  求任意的一个m×m矩阵的周边元素之和,m(2<=m<=20)及矩阵元素从键盘输入(只考虑int型,且不需考虑求和的结果可能超出int型能表示的范围)。
    编程可用素材:
        printf("Please input m: ");
        printf("Please input array:\n");
        printf("\nsum=…\n"…);
  程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。

Please input m: 5
Please input array:
1    45   67  235   464
35   6    89  32342 8
347  9346 47  95    746
46   785  436 19434 634
3235 567  24  8465  25

sum=14944
图1 程序运行效果示例
*/

#include <stdio.h>

#define N 20

int main(void)
{
    int i, j;
    int sum = 0;
    int arr[N][N];
    int m;

    printf("Please input m: ");
    scanf("%d", &m);
    printf("Please input array:\n");
    for ( i = 0; i < m; i++)
    {
        for ( j = 0; j < m; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }

    // 周边元素之和
    for ( i = 0; i < m; i++)
    {
        for ( j = 0; j < m; j++)
        {
            if(i==0 || i==m-1 ||j==0 ||j==m-1)
            {
                sum += arr[i][j];
            }
        }
    }
    // 输出
    printf("\nsum=%d\n", sum);
    return 0;
}

P217

在这里插入图片描述

/*
  编写一程序P217.C实现以下功能
  求任意的一个m×m矩阵的对角线上元素之和,m(2<=m<=20)及矩阵元素从键盘输入(只考虑int型,且不需考虑求和的结果可能超出int型能表示的范围)。
    编程可用素材:
        printf("Please input m: ");
        printf("Please input array:\n");
        printf("\nsum=…\n"…);
  程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。

Please input m: 5
Please input array:
1    45   67  235   464
35   6    89  32342 8
347  9346 47  95    746
46   785  436 19434 634
3235 567  24  8465  25

sum=56339
图1 程序运行效果示例
*/

#include <stdio.h>

#define N 20

int main(void)
{
    int i, j;
    int sum = 0;
    int m;
    int arr[N][N];

    printf("Please input m: ");
    scanf("%d", &m);

    printf("Please input array:\n");
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < m; j++)
        {
            scanf("%d", &arr[i][j]);
        }
    }

    // 对角线上元素之和
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < m; j++)
        {
            if (i == j || i == m - 1 - j)   // 判断是否为对角线上的元素
            {
                sum += arr[i][j];
            }
        }
    }

    // 输出
    printf("\nsum=%d\n", sum);

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值