• C

# maximum value(location) in array

hi,
I have a program like below how can I modify it to let it return me the location of maximum value

for example:
row 0 has maximum 4 and loacted in t[0][0]
row 0 has maximum 4 and loacted in t[0][1]
row 1 has maximum 8 and loacted in t[1][0]
row 2 has maximum 4 and loacted in t[2][2]

----------code------------------------
#include <stdio.h>
#include <stdlib.h>
#include <float.h>

int t [3][3]={{4,4,2},
{8,2,1},
{3,3,4}
};

main (){

int i,j, max, allmax;
allmax=0;

for (i=0; i<3 ; i++)
{
max = 0;
for (j=0; j<3; j++)
{
if (t[i][j]>max)
{
max=t[i][j];
}

if (t[i][j]>allmax)
{
allmax=t[i][j];
}
}

printf("row[%d] has maximun %d and loacte in t[][]: \n",i,max );
}

printf("allmax is : %d\n", allmax );
system("pause");
return 0;

}
###### Who is Participating?

Commented:
Just add that part from your code again, e.g.

#include <stdio.h>
#include <stdlib.h>
#include <float.h>

int t [3][3]={  {3,3,4},
{8,2,1},
{3,3,4}
};

main (){

int i,j, max, allmax, alli = 0, allj = 0, rowj = 0;

allmax = 0;
for (i=0; i<3 ; i++){
max = 0;
for (j=0; j<3; j++){
if (t[i][j] > max) {
max=t[i][j];
rowj = j;
}
if (t[i][j] > allmax) {
allmax=t[i][j];
alli = i;
allj = j;
}
}
printf("max vaule is : %d at %d\n",max,rowj );
}

printf("max vaule overall is : %d at %d/%d\n",allmax, alli, allj );

system("pause");
return 0;

}
0

Commented:
Similar to your last Q, you are almost there - make that

#include <stdio.h>
#include <stdlib.h>
#include <float.h>

int t [3][3]={  {3,3,4},
{8,2,1},
{3,3,4}
};

main (){

int i,j, max, allmax;

allmax = 0;
for (i=0; i<3 ; i++){
max = 0;
for (j=0; j<3; j++){
if (t[i][j] > max) {
max=t[i][j];
}
if (t[i][j] > allmax) {
allmax=t[i][j];
}
}
printf("max vaule is : %d\n",max );
}

printf("max vaule overall is : %d\n",allmax );

system("pause");
return 0;

}
0

Commented:
Sorry, missed the 'location part:

#include <stdio.h>
#include <stdlib.h>
#include <float.h>

int t [3][3]={  {3,3,4},
{8,2,1},
{3,3,4}
};

main (){

int i,j, max, allmax, alli = 0, allj = 0;

allmax = 0;
for (i=0; i<3 ; i++){
max = 0;
for (j=0; j<3; j++){
if (t[i][j] > max) {
max=t[i][j];
}
if (t[i][j] > allmax) {
allmax=t[i][j];
alli = i;
allj = j;
}
}
printf("max vaule is : %d\n",max );
}

printf("max vaule overall is : %d at %d/%d\n",allmax, alli, allj );

system("pause");
return 0;

}
0

Author Commented:

how can I get the maximum value for each row as well
the final output look like

row 0 has maximum 4 and loacted in t[0][0]
row 0 has maximum 4 and loacted in t[0][1]
row 1 has maximum 8 and loacted in t[1][0]
row 2 has maximum 4 and loacted in t[2][2]

max over over is 8 is in t[1][0]
0

Commented:
#include <stdio.h>
#include <stdlib.h>
#include <float.h>

int t [3][3]={  {4,4,2},
{8,2,1},
{3,3,4}
};

main (){

int i,j, max, allmax, alli = 0, allj = 0, rowj = 0;

allmax = 0;
for (i=0; i<3 ; i++){
max = 0;
for (j=0; j<3; j++){
if (t[i][j] > max) {
max=t[i][j];
rowj = j;
}
if (t[i][j] > allmax) {
allmax=t[i][j];
alli = i;
allj = j;
}
}
for (j=0; j<3; j++){
if( t[i][j] == max ){
printf("row %d has maximum %d and loacted in t[%d][%d]\n",i,max,i,j );
}
}
}

printf("max vaule overall is : %d at %d/%d\n",allmax, alli, allj );

system("pause");
return 0;

}
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.