I have this problem.... when running this code , I get strange results.. unexpected ones... I cant seam to figure this one out ( I am still learning C++ )[actualy just started out]

Code:

#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
void main()
{
int m=4 , n=4;
int a[m][n] , min , max , b[m][2] ,c[n][2];
int r, k ,i ,j , mini=0, minj=0, maxi=0, maxj=0;
do
{
cout<<"Do you want a random matrix [0/1]?";
cin>>r;
} while ((r!=0)&&(r!=1));
cout<<endl<<endl;
if (r==0) { //manual matrix
for (i=0;i<m;i++){
for(j=0;j<n;j++){
cout<<"enter element "<<i<<" "<<j<<endl;
cin>>a[i][j];
cout<<endl;
}}}
else { //PC generated
for ( i = 0 ; i < m ; i++ ){
for( j = 0 ; j < n ; j++ ){
a[i][j]= rand()/1000;
}}}
//find max...
for (j=0;j<n;j++){
max = a[0][j]; //take 1st elem of row....
for ( i = 0 ; i < m ; i++ ){
if (max < a[j][i]){
max = a[j][i];
//set a list of maximums in matrix b
b[j][0] = max;
b[j][1] = i;
}
}
}
//find min...
for (i=0;i<m;i++){
min = a[i][0]; //take 1st elem of col....
for ( j = 0 ; j < n ; j++ ){
if (min > a[j][i] ){
min = a[j][i];
//set a list of minimums in matrix c
c[i][0]= min;
c[i][1]= j;
}
}
}
for (i = 0 ; i < m ; i++)
{
for(j=0;j<n;j++){
cout<<a[i][j]<<"\t";
}
cout<<endl<<endl;
}
cout<<"\t"<<"Elem"<<"\t"<<"col"<<"\t"<<"row"<<endl; //table headings
cout<<"Max [b]---------------------"<<endl;
for ( k = 0 ; k < m ; k++){
cout<<"\t"<<b[k][0]<<"\t"<<(k+1)<<"\t"<<(b[k][1]+1)<<endl;
}
cout<<"Min [c]---------------------"<<endl;
for (j=0;j<n;j++){
cout<<"\t"<<c[j][0]<<"\t"<<c[j][1]+1<<"\t"<<(j+1)<<endl;
}
}