Реализация алгоритмов двумерных массивов

В двумерном массиве С (n, n), состоящем из целых чисел вычислить: • количество и произведение нечетных элементов; • сумму квадратов элементов главной диагонали, расположенных между максимальным и минимальным элементами массива.

Не получается вторая часть задания.


Ответы (1 шт):

Автор решения: Neuro
int data[4][4] = {
    {1,2,2,0},
    {1,3,4,5},
    {9,6,11,7},
    {4,2,1,6}
};
int n = 4;
int nodd_co = 0; // подсечт нечетных
int nodd_mult = 1; // произведение нечетных
//! нечетные элементы: x&1(битовое выделение четности равносильно x%2)
for (size_t i = 0; i < n; i++){
    for (size_t j = 0; j < n; j++){
        if(data[i][j]&1){
            nodd_co++;
            nodd_mult*=data[i][j];
        }
    }
}
// несовсвем понятно, что имеется ввиду под " сумму квадратов элементов главной диагонали, 
//расположенных между максимальным и минимальным элементами массива."
// просто сумма квадартов диагонали
int ssum = 0, sum = 0;
for (size_t i = 0; i < n; i++){
    ssum+=data[i][i]*data[i][i];
}
// минимум и максимум на главной диагонали
int mx = INT_MIN, mn = INT_MAX;
int mxi, mni;
for (size_t i = 0; i < n; i++){
    if(mx<data[i][i]){
        mx = data[i][i];
        mxi = i;
    }
    if (mn>data[i][i]){
        mn = data[i][i];
        mni = i;
    }
}
for (size_t i = min(mni,mxi) /*+1, если надо не включительно */; 
i < max(mxi,mni)/*+1, если надо включительно */; i++){
    sum+=data[i][i]*data[i][i];
}
→ Ссылка