C语言计算N*N矩阵的转置、平均值、对角线元素之和、周边元素之和

简介: C语言计算N*N矩阵的转置、平均值、对角线元素之和、周边元素之和

编程工具:Microsoft Visual C++ 2010学习版

程序获取:在最下方有完整代码。

或者关注公众号:码上言 回复:C语言矩阵即可获取工具和代码。

根据题目的意思,我们将题目中的四个功能拆分成以下四个函数来处理,最后由主函数调用。

我们的矩阵是自己从键盘输入或者自己定义好的矩阵。本文的是在主函数中写了个循环,我们自己手动输入矩阵,输入的方式是:数字+空格+回车。


N是我们定义的常量,我们是几阶的矩阵就将N设置多大。

#define N 3

第一种:矩阵的转置

int transp(int a[N][N])
{
  int i,j,b[N][N];
  for(i = 0; i < N; i++)
  {
    for(j = 0; j < N; j++)
    {
      b[j][i]=a[i][j];
    }
  }
  for(i = 0; i < N; i++)
  {
    for(j = 0; j < N; j++){
       printf("%3d ",b[i][j]);
    }
     printf("\n");
  }
  return 0;
}

第二种:矩阵的平均值

矩阵的平均值,就是矩阵的所有值相加,然后除以矩阵元素的个数。

这里的平均值函数返回值是一个double类型的。

double average(int a[N][N])
{
  int i,j;
  double avg,sum=0,count=0;
  for(i = 0; i < N; i++)
  {
    for(j = 0; j < N; j++)
    {
      sum += a[i][j];
      count++;
    }
  }
  avg = sum / count;
  return avg;
}

第三种:矩阵的对角线元素之和

对角线有两条对角线,分两种情况,一种是N*N矩阵的N为偶数,另一种是N为奇数,在偶数的时候,两条对角线没有相重复的数值,而为奇数的时候有一个交叉的数值重复,则需要再减一个交叉的数值。
例如:4*4矩阵N为偶数的矩阵示意图:对角线没有交叉的数据

1 1
1 1
1 1
1 1

例如:3*3矩阵N为奇数的矩阵示意图:对角线有交叉的数据

1 1
1
1 1

代码如下:

int diagonal_sum(int a[N][N])
{
  int i,j, s = 0;
  for(i = 0; i < N; i++)
  {
    for(j = 0; j < N; j++)
    {
      if(i == j)
      {
        s += a[i][j];
      }
    }
    s += a[i][N-i-1];
  }
  if(N % 2 == 1)
  {
    s -= a[N/2][N/2];
  }
  return s;
}
目录
相关文章
|
1月前
|
C语言
【C语言】库宏offsetof(结构体成员偏移量计算宏)
【C语言】库宏offsetof(结构体成员偏移量计算宏)
22 0
|
1月前
|
存储 编译器 Linux
【C语言】自定义类型:结构体深入解析(二)结构体内存对齐&&宏offsetof计算偏移量&&结构体传参
【C语言】自定义类型:结构体深入解析(二)结构体内存对齐&&宏offsetof计算偏移量&&结构体传参
|
26天前
|
C语言
C语言期末习题之二维数组转置
C语言期末习题之二维数组转置
24 0
|
12天前
|
存储 C语言
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
13 2
|
12天前
|
C语言
C语言学习记录——计算一个数的每位之和(递归实现)
C语言学习记录——计算一个数的每位之和(递归实现)
5 0
|
12天前
|
C语言
C语言学习记录——矩阵转换(定义一个数组实现或定义两个数组实现)
C语言学习记录——矩阵转换(定义一个数组实现或定义两个数组实现)
9 0
|
12天前
|
C语言
C语言学习记录——鹏哥二分法查找数组中元素 复习整理
C语言学习记录——鹏哥二分法查找数组中元素 复习整理
7 0
|
13天前
|
C语言
C语言探索:水仙花数的奥秘与计算
C语言探索:水仙花数的奥秘与计算
|
21天前
|
C语言
C语言(8)----长度计算方法:sizeof与strlen的对比
C语言(8)----长度计算方法:sizeof与strlen的对比
15 0
|
22天前
|
测试技术 C语言
C语言每日一练Day03——移除元素
C语言每日一练Day03——移除元素