已知一个矩阵,求所有元素中的最大值、最小值及其相应的下标。

如题所述

第1个回答  2013-07-28
#include<stdio.h>
#include<stdlib.h>void main()
{
int m,n,* * p = 0,i,j,min,mini = 0,minj = 0,max,maxi = 0,maxj = 0; printf("请输入矩阵的行数:\n");
scanf("%d",&m);
printf("请输入矩阵的列数:\n");
scanf("%d",&n);
p = (int * *) malloc (m * sizeof (int *));
for (i = 0;i < m;i++)
p[i] = (int *) malloc (n * sizeof (int));
printf("构建的矩阵为%d行,%d列。\n请依次输入矩阵中的元素:\n",m,n);
for (i = 0;i < m;i++)
for (j = 0;j < n;j++)
scanf("%d",&p[i][j]);
min = * p[0];
max = * p[0];
for (i = 0;i < m;i++)
for (j = 0;j < n;j++)
{
if (p[i][j] > max)
{
max = p[i][j];
maxi = i;
maxj = j;
}
if (p[i][j] < min)
{
min = p[i][j];
mini = i;
minj = j;
}
}
printf("该矩阵为:\n");
for (i = 0;i < m;i++)
{
for (j = 0;j < n;j++)
printf("%4d",p[i][j]);
printf("\n");
}
printf("最大的元素为:%d\n它的位置为第%d行第%d列\n",p[maxi][maxj],maxi + 1,maxj + 1);
printf("最小的元素为:%d\n它的位置为第%d行第%d列\n",p[mini][minj],mini + 1,minj + 1);
}
第2个回答  2013-07-28
weufhwieu ghioewk
相似回答