永发信息网

求助C++高手,矩阵求极值问题

答案:1  悬赏:70  手机版
解决时间 2021-02-23 11:03
  • 提问者网友:流星是天使的眼泪
  • 2021-02-23 02:04
就是要求输入一个都是整数的矩阵和矩阵的大小后,可以输出这个矩阵的所有极大值和极小值,就是一个数比他周围位置的数都大,从上到下,从左到右输出。 最好是能够写成一个函数完成这个功能,然后在main函数中调用它(最好能运行的),谢谢了~~!!!拜谢~~!!!!
最佳答案
  • 五星知识达人网友:西风乍起
  • 2021-02-23 02:22
#include <stdio.h>
#include <math.h>

#define MAX_ROW 100
#define MAX_COL 100

void find_max_min()
{ int row,col;
int row_cnt,col_cnt;
int matrix[MAX_ROW][MAX_COL];
int i,j;

printf("Please input the row size and col size of your matrix ^_^ :\n");
printf("row size = ");
scanf("%d",&row);
printf("col size = ");
scanf("%d",&col);

row_cnt=0;
col_cnt=0;
printf("\n");
for(row_cnt=0;row_cnt<row;row_cnt++)
{ printf("Please input the numbers of your matrix[%d] ^_^ :\n",row_cnt);
for(col_cnt=0;col_cnt<col;col_cnt++)
{
scanf("%d",&matrix[row_cnt][col_cnt]);
}
}

printf("\n");
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
if(
(matrix[i][j]>=matrix[i-1][j]||i==0) &&
(matrix[i][j]>=matrix[i+1][j]||i==row-1) &&
(matrix[i][j]>=matrix[i][j-1]||j==0) &&
(matrix[i][j]>=matrix[i][j+1]||j==col-1)
)
{printf("matrix[%d][%d]=%4d is one of the max values\n",i,j,matrix[i][j]);}
else if(
(matrix[i][j]<=matrix[i-1][j]||i==0) &&
(matrix[i][j]<=matrix[i+1][j]||i==row-1) &&
(matrix[i][j]<=matrix[i][j-1]||j==0) &&
(matrix[i][j]<=matrix[i][j+1]||j==col-1)
)
{printf("matrix[%d][%d]=%4d is one of the min values\n",i,j,matrix[i][j]);}
}
}

return;
}

main()
{
find_max_min();
printf("\nOK ^_^\n");

getch();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯