C语言用数组编程矩阵,二维数组—矩阵求和(C语言)
昨天上机了,之前上机都觉得题目挺简单的,但昨天的题明显比以前难了好吗!字符串二维数组感觉也没教什么呀。。所以我也做了蛮久,现依次把这几道题放在这里留作纪念。
题目1:请写一个程序,对于一个m行m列(2<m<20)的方阵,求其每一行、每一列及主、辅对角线元素之和(注:主对角线是方阵从左上角到右下角的一条斜线,辅对角线是方阵从右上角到左下角的一条斜线),然后按照从大到小的顺序依次输出这些值。
这道题还是挺简单的,主要就是要另外创一个数组依次储存所求的和然后再排序,而我所想到的从大到小的排序便是之前所学的冒泡排序法,其实选择排序法也未尝不可。
代码如下:
#include
#include//头文件中含下方用到的memset函数
int main()
{
int a[20][20],sum[20];
int i,j,m,temp;
memset(sum,sizeof(sum)); //这是我在别的书学到的将数组清零的办法。
scanf("%d",&m); //输入方阵大小
for(i = 0;i < m;i++)
{
for(j = 0;j < m;j++)
scanf("%d",&a[i][j]); //注意是a[i][j] 有时候矩阵我就犯傻写成a[m][n]之类了
}
for(i = 0;i < m;i++) //这个for循环是求出各行之和并依次存入sum数组中
{
for(j = 0;j < m;j++)
sum[i] += a[i][j];
}
for(i = 0;i < m;i++) //这个for循环是求出各列之和
{
for(j = 0;j < m;j++)
sum[i+m] +=a[j][i]; //注意是sum[i+m],因为上面求行的和有m行。
}
for(i = 0;i < m;i++) //求正对角线
sum[2*m] += a[i][i];
for(i = 0;i < m;i++) //求辅对角线
sum[2*m+1] += a[i][m-1-i]; //m-1-i 是找规律所得
for(i = 0;i < 2*m+1;i++) //冒泡排序法 从大到小排列
{
for(j = 0;j < 2*m+1- i;j++)
{
if(sum[j] < sum[j+1])
{
temp = sum[j];
sum[j] = sum[j+1];
sum[j+1] = temp;
}
}
}
for(i = 0;i < 2*m+2;i++) //打印所得
printf("%d ",sum[i]);
printf("n");
return 0;
}
这是上机的第一题,二维数组类的题。
欢迎交流探讨。
谢谢。
总结
以上是编程之家为你收集整理的二维数组—矩阵求和(C语言)全部内容,希望文章能够帮你解决二维数组—矩阵求和(C语言)所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!
C语言用数组编程矩阵,二维数组—矩阵求和(C语言)相关推荐
- (c语言)编程输出二维数组中元素的最大值,要求用指针实现。
(c语言)编程输出二维数组中元素的最大值,要求用指针实现. #include<stdio.h> #include<stdlib.h> #define N 6 //行数 #def ...
- 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)
原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...
- c语言一维数组转化为二维矩阵,js将一维数组转化为二维数组
遇到的问题: 后端返回的是一组一维数组,但是需要展示的格式是二维数组,常见的场景举例:后台返回10个长度的数组,需要分成3个一组展示在banner上. 例:[1,2,3,4,5,6,7,8,9,10] ...
- C语言课程训练系统题-二维数组cqupt
C语言课程训练系统题-二维数组cqupt 1.杨辉三角 2.输出每列最小值 3.一个n位正整数如果等于它的n个数字的n次方和,该数称为n位自方幂数.设计求3~6位自方幂数 4.有如下3*4的矩阵,求出 ...
- 黑马程序员——c语言学习心得——函数传递二维数组
黑马程序员--c语言学习心得--函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化. 变量 ...
- 编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推。
编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推. 例如,原始二维数组为,逆向存放后变为.试建立一个类 ...
- 【C 语言】数组 ( 一维数组形参退化 | 二维数组形参退化 | 函数形参等价关系 )
文章目录 一.一维数组形参退化 二.二维数组形参退化 三.数组形参等价关系 一.一维数组形参退化 C 中将 一维数组 作为参数 , 传递到函数中 , 该 一维数组 会退化为 指针 ; 将 int ar ...
- 【C 语言】数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )
文章目录 一.验证二维数组内存是线性的 1.打印二维数组 2.以一维数组方式打印二维数组 3.打印二维数组值和地址 二.完整代码示例 一.验证二维数组内存是线性的 验证二维数组内存是线性的 : 验证方 ...
- matlab建成二维数组,matlab绘制二维数组
hist 累计图 rose 极座标累计图 stairs 阶梯图 stem 针状图 fill 实心图 feather 羽毛图 compass 罗盘图 quiver 向量场图 Matlab 如何画出一个二 ...
- oracle 一维数转二维数组,js将一维数组转化为二维数组
遇到的问题: 后端返回的是一组一维数组,但是需要展示的格式是二维数组,常见的场景举例:后台返回10个长度的数组,需要分成3个一组展示在banner上. 例:[1,2,3,4,5,6,7,8,9,10] ...
最新文章
- Navicat 提示 Access violation at address ***(771B7870) in module ‘ntdll.dll’. Read of address ***(220A
- 分享几个有意思的视频
- easyExcel 使用指南详解
- 大数据分析实战-信用卡欺诈检测(五)-逻辑回归模型
- ef设置非自增长id_今日学习必备:分布式系统全局唯一ID你懂吗?
- redis 客户端_你在使用什么 Redis 客户端工具?
- C++预处理命令之文件包含和条件编译
- 一个html文件创造多个页面,使页眉和页脚文件包含在多个html页面中。
- SpringMVC实现list表单(六)
- 浅谈javascript面向对象编程
- 手把手教你制作网页导航栏
- 分子力学无法模拟化学键的断裂的原因
- 第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛 B - 大还是小? 字符串水题...
- c语言编写程序p1207.c,《C语言程序设计》(卷)考核班级
- 如何在物联网平台创建一个千里传音产品?
- KOG注释[Ubuntu 15.10系统]
- Apache 防止恶意解析
- 南昌大学计算机考研2021,2021南昌大学考研参考书目
- 记时,耗时,Stopwatch
- FL Studio2020最新中文直装版水果软件