请大家帮忙用C语言编个程序,“有一个三乘四的矩阵,求编程求出其中值最大和最小的元素,输出其值及其所在

如题所述

第1个回答  2011-12-26
# include <stdio.h>
main()
{ int max,maxi,maxj,min,mini,minj,a[3][4],i,j;
printf("input numbers:\n');
for(i=0,i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
max=min=a[0][0];
for(i=0,i<3;i++)
for(j=0;j<4;j++)
{ if(a[i][j]>max)
{ max=a[i][j];
maxi=i+1;
maxj=j+1;
}
if(a[i][j]<min)
{ min=a[i][j];
mini=i+1;
minj=j+1;
}
}
printf("最大值为%d,在第%d行,第%d列;\n最小值为%d,在第%d行,第%d列。\n",max,maxi,maxj,min,mini,minj);
}
满意请采纳!本回答被提问者采纳
第2个回答  2011-12-26
#include <stdio.h>

void main()
{
int i,j,min,max,a[3][4],b[24],c[24],m=0,n=0;
printf("请输入矩阵元素:\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);

min=max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
if(min>a[i][j])
min=a[i][j];
if(max<a[i][j])
max=a[i][j];
}
for(i=0;i<3;i++)//假如最值有相同的时候,进行检验并记录。
for(j=0;j<4;j++)
{
if(max==a[i][j])
{
b[m]=i;
m++;
b[m]=j;
m++;
}
if(min==a[i][j])
{
c[n]=i;
n++;
c[n]=j;
n++;
}
}
printf("矩阵元素最大值为:%d\n它的位置是:\n",max);
for(i=0;i<m;i+=2)
printf("第%d行,第%d列\n",b[i]+1,b[i+1]+1);

printf("\n矩阵元素最小值为:%d\n它的位置是:\n",min);
for(i=0;i<n;i+=2)
printf("第%d行,第%d列\n",c[i]+1,c[i+1]+1);

printf("\n");
}
第3个回答  2011-12-26
#include <stdio.h>

int main()
{
double s[3][4];
int i, j;
int maxi, maxj, mini, minj;
double max = -19000, min = 999999;
printf("输入矩阵数据\n");
for( i = 0; i < 3; i++ )
{
for( j = 0; j < 4; j++ )
{
scanf("%d", &s[i][j]);
if(s[i][j] > max)
{
max = s[i][j];
maxi = i;
maxj = j;
}
if(s[i][j] < min)
{
min = s[i][j];
mini = i;
minj = j;
}
}
}
printf("min_i = %d, min_j = %d, min = %d\n", mini, minj, min);
printf("max_i = %d, max_j = %d, max = %d\n", maxi, maxj, max);

return 0;
}
第4个回答  2011-12-26
如果没有算法要求直接遍历不就好了