Treba da vodiš računa šta su KOLONE a šta REDOVI, kako pri unosu, tako i pri referenciranju kroz matricu. Uvedi neki red odnosno redosled, tipa n=redovi (ukupno), m=kolone (ukupno), i=redovi (trenutno), j=kolone (trenutno), tako da ne dođe do greške po tom pitanju. Zato sam uvek prvo stavljao I pa tek onda J.
Modifikovao sam i kod za Min.
// NETESTIRANO
Code:
#include <stdio.h>
#include <stdlib.h>
#define MAX_REDOVA 100
#define MAX_KOLONA 100
/* n- broj redova, m- broj kolona */
void UpisiRand(int a[][MAX_KOLONA], int n, int m, int opseg)
{
int i,j;
srand(time(NULL));
for(i=0;i<n;i++)
for(j=0;j<m;j++)
a[i][j]=rand()%opseg;
}
void Prikazi(int a[][MAX_KOLONA],int n,int m)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%d \t",a[i][j]);
printf("\n");
}
}
int Min(int Niz[][MAX_KOLONA],int n, int m_indeks)
{
int i, min=Niz[0][m_indeks];
for(i=1;i<n;i++)
{
if(Niz[i][m_indeks]<min)
min=Niz[i][m_indeks];
}
return min;
}
int main(int argc, char *argv[])
{
int Mat[MAX_REDOVA+1][MAX_KOLONA+1],j,i,n,m,op,max;
do
{
printf("Unesite broj REDOVA: ");
scanf("%d",&n);
} while ( n<1 || n>MAX_REDOVA );
do
{
printf("Unesite broj KOLONA: ");
scanf("%d",&m);
} while ( m<1 || m>MAX_KOLONA );
printf("Unesi OPSEG: ");
scanf("%d",&op);
UpisiRand(Mat,n,m,op);
printf("Elementi matrice su: \n");
Prikazi(Mat,n,m);
for(j=0;j<m;j++)
{
printf("Najmanji element %d kolone je: %d \n",j+1, Min(Mat, n, j));
}
system("PAUSE");
return 0;
}