C语言编程求出3×4矩阵中的最大值与最小值及其所在行和列。

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-02
43.有一个3*4的矩阵,请编程求出其中值最大的元素,以及最大值所在的行号和列号。

代码如下,仅供参考:
#include
using namespace std;
int main()
{
int i,j,min,max,a[3][4],b[24],c[24],m=0,n=0;
cout<<"请输入矩阵元素:"<<endl;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>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++;
}
}
cout<<"矩阵元素最大值为:"<<max<<endl<<"它的位置是:"<<endl;
for(i=0;i<m;i+=2)
cout<<"第"<<b[i]+1<<"行"<<"第"<<b[i+1]+1<<"列"<<"";
cout<<endl;
cout<<"矩阵元素最小值为:"<<min<<endl<<"它的位置是:"<<endl;
for(i=0;i<n;i+=2)
cout<<"第"<<c[i]+1<<"行"<<"第"<<c[i+1]+1<<"列"<<"";
cout<<endl;
return 0;

}
有不清楚的再联系我。

因为max最终放的是最大的值,所以用判断语句判断max是否小于a[i][j],如果max 小的话,就说明原来赋给max的值不是最大值,有一个值比它大,那么,就要把这个大赋给max,循环完后,max就与所以的值都比了一次,找到了最大的。

比如我有3个数,找出一个最大的。
int a[2]={1,2,3,} //数组a[0]=1,a[1]=2,a[2]=3
max=a[1] //max=1
if (max<a[2]) max=a[2] 因为max 原来的值等于1,小于a[2],所以,现在要把大的数a[2]给max
if(max<a[3]) max=a[3] 因max原来的值等于2了,小于a[3],所以,现在要把大的数a[3]给max
最后max里放的是最大的数。即a[3]的值3。


另外,a[i][j]中的i 和j 是循环中的变量,i 对第几行,j 对应第几列。所以只要找到最大值,就用其它变量保存,那么就知道了该数的i 和 j ,即最大值所在的行号和列号。

我来

#include <stdio.h>
#include "stdlib.h"
#include "time.h"

main()
{
int i,j,*p,arry[3][4];
p=arry[0];
srand((unsigned)time(NULL));
for (i=0;i<3;i++)
{
for (j=0;j<4;j++)
{
arry[i][j] = rand()%100+1;
}
}
printf("\n -----------");
while(*p)
{
printf("%d ",*p);
p++;
}
printf("\n ----------");
for (i=0;i<3;i++)
{
for (j=0;j<4;j++)
{
printf("%d ",arry[i][j]);
}
}
printf("\n -----------");
return 0;
}
还有点问题 我回家继续改 下班了

  • 请大家帮忙用C语言编个程序,“有一个三乘四的矩阵,求编程求出其中值最...
    答:printf("最大值为%d,在第%d行,第%d列;\n最小值为%d,在第%d行,第%d列。\n",max,maxi,maxj,min,mini,minj);} 满意请采纳!
  • c语言程序编写 输入一个4×3的整数矩阵,输出其中最大值,最小值和他们...
    答:max=arr[0][0];//令最大值初始化为arr[0][0]min=arr[0][0];//令最小值初始化为arr[0][0]printf("\n\n\t---Arr[][]---\n");//打印二维数组 for(i=0;i<4;i++){printf("\n\t");for(j=0;j<3;j++)printf("%5d",arr[i][j]);} if(arr[i][j]>max){//当...
  • 有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所...
    答:void main(){int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};int i,j,c,d,max;max=a[0][0];for(i=0;i<3;i++){for(j=0;j<4;j++)if(max<=a[i][j]){max=a[i][j];c=i;d=j;} } printf("%d最大数\n%d行号\n%d列号",max,c,d);} ...
  • C语言程序设计:假设有一个3*4的矩阵,编写程序,找出其中值最大的元素
    答:} } } printf("%d\t%d\t%d\n", nMaxElem, r, c);} int main(){ int n_array[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};FindMax(n_array, 3, 4);return 0;}
  • 一个3* 4矩阵,试编程找出这个矩阵的最大值,并记录最大值所在的行和列...
    答:max=a[0][0];for(i=0;i<3;i++)for(j=0;j<4;j++)if(max<a[i][j]){ max=a[i][j];p=i;q=j;} cout<<"最大值为:"<<max<<endl;cout<<"所在的行为:"<<p<<endl;cout<<"所在的列为:"<<q<<endl;} 这是我编一个简单的程序,你看看或许对你有用,已经运行成功了!
  • C语言有一个3*4的矩阵,用c语言编写程序找出其中值最大的元素,并输出最...
    答:max=a[1] //max=1 if (max<a[2]) max=a[2] 因为max 原来的值等于1,小于a[2],所以,现在要把大的数a[2]给max if(max
  • ...3*4的矩阵,要求编写一个程序找出每一行中的最大值并与第一列交换...
    答:void swap(double &a,double &b){ double temp=a;a=b;b=temp;} int InverseMatrix(double *matrix,const int &row){ double *m=new double[row*row];double *ptemp,*pt=m;int i,j;ptemp=matrix;for (i=0;i<row;i++){ for (j=0;j<row;j++){ pt=*ptemp;ptemp++;pt++;} }...
  • ...有一个3*4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列...
    答:printf("最大值为:%d,行列分别为:%d,%d\n",max,m,n);} 结果:Input 12 numbers:1 2 3 6 5 4 9 8 13 7 12 5 1 2 3 6 5 4 9 8 13 7 12 5 最大值为:13,行列分别为:2,0 Press any key to continue ...
  • 亲萌,c语言求助 题目:对于一个如图片1所示4乘3的矩阵a,找出其中最大值...
    答:main(){ int a[4][3], i,j, max, m,n; for( i=0;i<4;i++ ) for( j=0;j<3;j++ ) scanf( "%d", &a[i][j] ); //输入12个数 max=a[0][0]; m=n=0; //先假定第一个数是最大的,m、n是该数的下标 for( i=0;i<4;i++ ) for(...
  • 有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所...
    答:h> void main(){int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};int i,j,c,d,max;max=a[0][0];for(i=0;i<3;i++){for(j=0;j<4;j++)if(max<=a[i][j]){max=a[i][j];c=i;d=j;} } printf("%d最大数\n%d行号\n%d列号",max,c,d);} ...