#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
#include <conio.h>
void fillPin2D(int n ,int my2DArray[][n]);
void showPin2D(int n ,int my2DArray[][n]);
float findMeanLine(int n ,int my2DArray[][n]);
float findMeanCol(int n ,int my2DArray[][n]);
void showPinDouble1D(int n,float avgLine[n]);
int findDSum(int n ,int my2DArray[][n]);
int main(int argc,char *argv[])
{
srand( time(NULL) );
int n;
printf ("give a number higher than five (5)\n\n");
scanf ("%d",&n);
while (n <= 5)
{
printf ("give a number higher than five (5)\n\n");
scanf ("%d",&n);
}
printf("\n");
int my2DArray[n][n];
float avgLine[n],avgCol[n];
// filling array /////
fillPin2D (n, my2DArray);
//showing array /////
showPin2D(n, my2DArray);
printf("\n\n");
// average per line /////
avgLine[n] = findMeanLine(n, my2DArray);
//show average per line ///// showPinDouble1D(n,avgLine);
//average per Col /////
avgCol[n] = findMeanCol(n ,my2DArray);
//Show average per Col /////
showPinDouble1D(n,avgCol);
//add 2 diagonals /////
int sumD;
sumD = findDSum(n ,my2DArray);
printf ("sumD = %d",sumD);
return 0;
}
void fillPin2D(int n ,int my2DArray[][n])
{
int row,col;
for (row=0 ; row <n ; row++)
for (col=0 ; col<n ; col++)
my2DArray[row][col] = rand()%10 + 1;
}
void showPin2D(int n ,int my2DArray[][n])
{
int row,col;
for (row=0 ; row <n ; row++)
{
for (col=0 ; col<n ; col++)
{
printf ("%d ",my2DArray[row][col]);
}
printf ("\n");
}
}
float findMeanLine(int n ,int my2DArray[][n])
{
int sumRow=0;
int row,col;
float avgLine[n];
for (row=0; row <n ; row++)
{
sumRow=0;
for (col=0 ; col < n ; col++)
{
printf("%lu\n", sizeof(my2DArray));
printf("%d\n",my2DArray[row,col]);
//checking value of my2DArray[row,col]
sumRow+=my2DArray[row,col];
//[Warning] assignment makes integer from pointer without a cast
}
avgLine[row]=(float)sumRow/n;
}
return avgLine[n];
}
void showPinDouble1D(int n,float avgLine[])
{
printf("avg = ");
int a;
for (a=0 ; a < n ; a++)
{
printf(" %f ",avgLine[a]);
}
printf("\n");
}
float findMeanCol(int n ,int my2DArray[][n])
{
int row,col;
float avgCol[n];
for (col=0 ; col < n ; col++)
{
int sumCol=0;
for (row=0; row < n ; row++)
{
printf("%d\n",my2DArray[row,col]);
//checking value of my2DArray[row,col] sumCol+=my2DArray[row,col];
//[Warning] assignment makes integer from pointer without a cast
}
avgCol[col]=(float)sumCol/n;
}
return avgCol[n];
}
int findDSum(int n ,int my2DArray[][n])
{
int row,col,sumD=0;
double avgCol[n];
for (col=0 ; col < n ; col++)
{
int sumCol=0;
for (row=0; row < n ; row++)
{
if (row==col)
{
sumD+=my2DArray[row][col];
}
else if (n-row-1 == col)
{
sumD+=my2DArray[row][col];
}
}
}
return sumD;
}