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;
}
目录
相关文章
|
21天前
|
存储 算法 安全
C 语言中的位运算:挖掘底层计算的高效力量
位运算是C语言中直接操作二进制位的一种技术,能高效处理底层数据,广泛应用于优化算法、硬件编程等领域,是掌握C语言高级特性的关键之一。
|
23天前
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
68 4
|
6月前
|
C语言
【C语言刷题系列】删除公共元素
【C语言刷题系列】删除公共元素
|
6月前
|
存储 C语言
【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)
【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)
|
3月前
|
存储 人工智能 C语言
数据结构基础详解(C语言): 栈的括号匹配(实战)与栈的表达式求值&&特殊矩阵的压缩存储
本文首先介绍了栈的应用之一——括号匹配,利用栈的特性实现左右括号的匹配检测。接着详细描述了南京理工大学的一道编程题,要求判断输入字符串中的括号是否正确匹配,并给出了完整的代码示例。此外,还探讨了栈在表达式求值中的应用,包括中缀、后缀和前缀表达式的转换与计算方法。最后,文章介绍了矩阵的压缩存储技术,涵盖对称矩阵、三角矩阵及稀疏矩阵的不同压缩存储策略,提高存储效率。
479 8
|
4月前
|
存储 C语言
【数据结构】c语言链表的创建插入、删除、查询、元素翻倍
【数据结构】c语言链表的创建插入、删除、查询、元素翻倍
【数据结构】c语言链表的创建插入、删除、查询、元素翻倍
|
6月前
|
存储 C语言
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
|
6月前
|
存储 安全 C语言
【C语言刷题每日一题】——求最大公约数(带数学计算过程详解)
【C语言刷题每日一题】——求最大公约数(带数学计算过程详解)
|
6月前
|
存储 C语言
【C语言刷题每日一题】——计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
【C语言刷题每日一题】——计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
|
6月前
|
C语言
【C语言刷题系列】移除元素
【C语言刷题系列】移除元素