夏秋的朝暮. 2022-11-09 22:55 采纳率: 90%
浏览 33
已结题

C语言,请问这个代码该怎么改?

判断矩阵中的局部极大值,请问怎么实现这个功能啊……我写的只能实现输出None那个功能……
代码如下(每个%后都有一个d的)
#include"stdio.h"
int main(void)
{
int row,col;
scanf("%d %)",&row,&col);
int matrix[row][col];
int i,j;
for(i = 0;i < row;i++){
for(j = 0;j < col;j++){
scanf("%d",&matrix[i][j]);
}
}
int p = 0;
for(i = 1;i < row -1;i++){
for(j = 1;j < col - 1;j++){
if((matrix[i][j] > matrix[i][j-1]) && (matrix[i][j] > matrix[i][j+1]) && (matrix[i][j] > matrix[i-1][j]) && (matrix[i][j] > matrix[i+1][j]))
printf("%d % %\n",matrix[i][j],i,j);
}
}
if(p == 0)
printf("None %d %",row,col);
return 0;
}

【描述】
对于M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,则元素A[i][j]是矩阵的局部极大值。找出矩阵A的全部局部极大值及其所在的位置。
【输入】
第一行中给出矩阵A的行数M和列数N(3≤M,N≤20);
下面M行,每行给出A在该行的N个元素的值。数字间以空格分隔。
【输出】
按照“元素值 行号 列号”的格式,分行输出一个局部极大值,其中行、列编号从1开始。要求按照行号递增输出;若同行有超过一个局部极大值,则该行按列号递增输出。若没有局部极大值,则输出“None 总行数 总列数”。
【输入示例】
3 5
1 1 1 1 1
9 3 9 9 1
1 5 3 5 1
【输出示例】
None 3 5

  • 写回答

1条回答 默认 最新

  • 浪客 2022-11-09 23:21
    关注
    
    稍作修改
    if ((matrix[i][j] > matrix[i][j - 1]) && (matrix[i][j] > matrix[i][j + 1]) && (matrix[i][j] > matrix[i - 1][j]) && (matrix[i][j] > matrix[i + 1][j]))
    {
        printf("%d %d %d\n", matrix[i][j], i+1, j+1);
        p = 1;
    }
    
    测试数据
    
    3 5
    1 1 1 1 1
    9 3 9 6 1
    1 9 3 5 1
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月10日
  • 已采纳回答 11月10日
  • 创建了问题 11月9日

悬赏问题

  • ¥15 TS2307: Cannot find module 'cc'.
  • ¥15 100小时学会sap 书上pp章节5.22,标准成本计算逻辑?
  • ¥50 达梦数据库误删日志文件重做DAMENG01.log启动仍然-712错误
  • ¥15 cellranger化学处理类型报错
  • ¥15 用texstudio插入图片出现下面情况,怎么办
  • ¥15 ubantu 用samba挂载windows的共享文件夹,无法挂载二级目录和修改文件
  • ¥15 有没有会五轴RTCP算法,双转台AC结构。
  • ¥25 对于LSTM实践问题的疑问
  • ¥15 PHP中关于排名和显示的问题
  • ¥15 如何将robotstudio中编辑好的程序通过u盘传输到abb机器人的示教器中