Ciao a tutti! Ho sviluppato un programma che data in input una matrice quadrata restituisce l'indice di riga e di colonna dell'elemento massimo e dell'elemento minimo.
Solo che non funziona sempre, mi aiutate a capire dov'è l'errore logico?
codice:
#include<stdio.h>
int main()
{
int M[10][10],i,j,r,c;
printf("Quante righe e quante colonne vuoi?\n");
scanf("%d",&r);
c=r;
for(i=0;i<r;i++){
for(j=0;j<c;j++){
printf("Inserisci l'elemento di riga %d e di colonna %d: \n",i,j);
scanf("%d",&M[i][j]);
}
}
printf("L'elemento massimo della matrice si trova in riga %d e colonna %d\n",IndMaxR(r,c,M),IndMaxC(r,c,M));
printf("L'elemento minimo della matrice si trova in riga %d e colonna %d\n",IndMinR(r,c,M),IndMinC(r,c,M));
return 0;
}
int IndMaxR(int righe, int colonne, int Matrice[][10])
{
int i,j,massimo,max;
massimo = Matrice[0][0];
max=0;
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
if(Matrice[i][j] > massimo)
max = i;
}
}
return max;
}
int IndMaxC(int righe, int colonne, int Matrice[][10])
{
int i,j,massimo,max;
massimo = Matrice[0][0];
max=0;
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
if(Matrice[i][j] > massimo)
max = j;
}
}
return max;
}
int IndMinR(int righe, int colonne, int Matrice[][10])
{
int i,j,minimo,min;
minimo = Matrice[0][0];
min=0;
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
if(Matrice[i][j] < minimo)
min = i;
}
}
return min;
}
int IndMinC(int righe, int colonne, int Matrice[][10])
{
int i,j,minimo,min;
minimo = Matrice[0][0];
min=0;
for(i=0;i<righe;i++){
for(j=0;j<colonne;j++){
if(Matrice[i][j] < minimo)
min = j;
}
}
return min;
}