输入二维数组a[4][6],输出其中的最大值及其对应的行列位置 c语言编写

2024-11-28 16:41:11
推荐回答(3个)
回答1:

这个是要求用指针写的,如果你还没有学到指针,你就看下面那个答案的。
#include
void main(){
int a[4][6]={{1,2,5,5,8,9},{14,12,14,14,4,7},{15,11,0,1,4,7},{1,2,3,4,5,6}};
int findmax(int *p,int *p1);
int ans,maxij;
ans=findmax(a[0],&maxij); //看第一个参数
printf("\nthe answer is a[%d][%d]=%d",maxij/6,maxij%4,ans);
}

int findmax(int *p,int *p1){ //将其当成一维数组对待

int m=p[0];
for (int i=0;i<24;i++)
{
if (m {m=p[i],*p1=i;
}
}
return m;
}
//第二种方法。。。。。。。。。。。
#include
void main(){
int a[4][6]={{1,2,3,4,5,6},{1,4,7,5,6,2},{1,4,5,6,8,9},{2,5,6,7,8,4}};
int max=a[0][0],i,j;
for(i=0;i<4;i++)
{
for(j=0;j<6;j++)
{
if(max max=a[i][j];

}
}

printf("The Max is %d\t ",max);
}

回答2:

void FindMaxValue(int data[4][6], int& maxvalue, int& rowindex, int&colunmindex );
int main(int argc, char* argv[])
{
int a[4][6] = { 1, 2, 3, 4, 100, -10,
100, 23,23,4234,342,2,
87,23,56,97, 99, 1000,
677, 78, 32, 76, 23, 89};
int maxvalue = 0;
int rowindex = 0;
int columnindex = 0;

FindMaxValue( a, maxvalue, rowindex, columnindex );
printf(" 最大值是 %d 在第 %d 行 第%d列\n", maxvalue, rowindex, columnindex);
return 0;
}

void FindMaxValue(int data[4][6], int& maxvalue, int& rowindex, int&colunmindex )
{
bool isfirst = true;
for ( int i = 0; i < 4; i++ )
{
for ( int j = 0; j < 6; j++ )
{
if ( isfirst )
{
isfirst = false;
maxvalue= data[i][j];
rowindex = i + 1;
colunmindex= j + 1;
}
else
{
if ( data[i][j] > maxvalue )
{
maxvalue= data[i][j];
rowindex = i + 1;
colunmindex= j + 1;
}
}
}
}
}

回答3:

#include
int main()
{ int a[4][6];
int i,j,row=0,colum=0,max;
for(i=0;i<4;i++)
for(j=0;j<6;j++)
scanf("%d",&a[i][j]);
max=a[0][0];
for(i=0;i<4;i++)
for(j=0;j<6;j++)
if(a[i][j]>max)
{
max=a[i][j];
row=i;
colum=j;
}
printf("a[%d][%d]=%d",row,colum,max);
}
这个简单