C/C++

Помогите с задачей C++

В заданном двумерном массиве А (N;N) подсчитать среднее арифметическое
четных элементов, расположенных выше побочной диагонали.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<unistd.h>
#define MAX 9
int main()
{
int N, n=0, sum=0, count=0, **A;
printf("Enter size of matrix A[N,N] N = ");
scanf("%d",&N);
//выделяем память в куче
//для матрицы:
A=(int**)malloc(N*sizeof(int*));
if(A)
{//if A
//выделяем память в куче
//для столбцов:
for(int i = 0; i < N; i++)
{//for i
A[i]=(int*)malloc(N*sizeof(int));
if(!A[i])
{
printf("\nError. Column not created.");
exit(1);
}
}//for i

//заполняем матрицу
//случайными значениями
//от 1 до MAX:
srand(time(NULL));
printf("\n Matrix A[%d,%d]:\n",N,N);
for(int i = 0; i < N; i++)
{//for i
for(int j = 0; j < N; j++)
{//for j
A[i][j]=rand()%MAX+1;
printf("%2d ",A[i][j]);
}//for j
printf("\n");
}//for i

//обнуляем элементы матрицы
//побочной диагонали и ниже:
for(int i = N-1; i >= 0; i--)
{
for(int j = n; j < N; j++)
{
A[i][j]=0;
}
n++;
}
//выводим итоговую матрицу:
printf("\n Result matrix A[%d,%d]:\n",N,N);
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
printf("%2d ",A[i][j]);
}
printf("\n");
}

//находим среднее арифметическое
//чётных элементов выше
//побочной диагонали:
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
if(A[i][j]%2==0 && A[i][j]!=0)
{sum+=A[i][j];count++;}
if(count)
printf("\nArithmetic mean is %.2f \n sum=%d, count=%d",(float)sum/count,sum,count);
//освобождаем кучу:
for(int i = 0; i < N; i++)
free(A[i]);
free(A);
}//if A
else
printf("\nError. Matrix not created.");
fflush(stdout);
sleep(10);
return 0;
}
Sasha Ambaryan
Sasha Ambaryan
37 945
Лучший ответ