解题思路:采用二维数组输入代表矩阵,引入fabs函数求绝对值并进行判断,最后输出
注意事项:引入math.h头文件才能使用fabs函数;矩阵的行列相当于数组下标要再加1;另外本题其实存在一个小争议:如果矩阵有多项绝对值最大且相同的项,该怎么输出呢?题目没有给出任何信息,这是原题目的漏洞,好在它测试数据都是只有一项绝对值最大的,所以我们就不考虑那么复杂了,直接按照最大项去输出即可。
参考代码:
#include<stdio.h>
#include<math.h>
int main() {
int n,a[7][7]={0};//先初始化一个二维数组用来存放矩阵
int x=0,y=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}//输入n阶矩阵
int max=fabs(a[0][0]);//先把第一项绝对值定为max,下面循环比较找出绝对值最大项
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(fabs(a[i][j])>max)//题目没说相等怎么办,咱们就不考虑了,直接找最大
{
max=a[i][j];
x=i;
y=j;//记录最大项对应的行列数
}
}
}//遍历数组找绝对值最大的那一项
printf("%d %d %d",a[x][y],x+1,y+1);//别忘了xy代表数组下标,换算到矩阵的行列要+1
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复