Реализация алгоритмов двумерных массивов
В двумерном массиве С (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];
}