Определить сумму максимальных элементов каждого столбца матрицы - C (СИ) (71284)
Формулировка задачи:
Задана вещественная матрица размером N×M. Определить сумму максимальных элементов каждого столбца матрицы.
Не понимаю как задать условие сравнения значений по столбцу.
Надеюсь на вас.
Решение задачи: «Определить сумму максимальных элементов каждого столбца матрицы»
textual
Листинг программы
//ÑóììГ* Гў Г¬Г*òðèöå ГЇГ® ñòîëáöó
#include <stdio.h>
int main(void) {
int i, j, M, N,k;
float fRes, fBuf, arrMatr[100][100];
fRes = 0;
fBuf = 0;
M = 3;
N = 3;
// arrMatr Г±Г*ìî ñîáîé äîëæГ*Г* áûòü Г·ГҐГ¬-ГІГ® Г§Г*ïîëГ*ГҐГ*Г*
arrMatr[0][0] = 1;
arrMatr[0][1] = 2;
arrMatr[0][2] = 3;
arrMatr[1][0] = 1;
arrMatr[1][1] = 2;
arrMatr[1][2] = -3;
arrMatr[2][0] = 3;
arrMatr[2][1] = 5.5;
arrMatr[2][2] = 1;
for(j=0; j<M; j++)
{
k=0;
for(i=0; i<N; i++)
{
if(k==0)fBuf = arrMatr[i][j];
else if(arrMatr[i][j] > fBuf) fBuf = arrMatr[i][j];
k=1;
}
fRes = fRes + fBuf;
}
printf("%f\r\n", fRes);
}
Объяснение кода листинга программы
В этом коде происходит следующее:
- Объявляются переменные:
i,j,M,N,k- целочисленные переменные для управления циклом;fRes,fBuf- переменные с плавающей точкой для хранения результатов;arrMatr[100][100]- матрица размером 100x100 для хранения чисел.
- Задаются начальные значения:
fResиfBufинициализируются нулем;MиNинициализируются значениями 3 и 3 соответственно;- Элементы матрицы
arrMatrинициализируются значениями.
- Запускается цикл по столбцам матрицы:
- Внешний цикл
forперебирает столбцы от 0 доM-1. - Внутренний цикл
forперебирает строки текущего столбца от 0 доN-1. - Если переменная
kравна нулю, то текущее значение элемента матрицыarrMatr[i][j]становится новым значением переменнойfBuf. - Если текущее значение элемента матрицы
arrMatr[i][j]больше значения переменнойfBuf, то значение переменнойfBufобновляется. - Переменная
kинкрементируется на единицу после каждой итерации внутреннего цикла.
- Внешний цикл
- Сумма максимальных значений каждого столбца сохраняется в переменной
fRes. - Выводится результат - сумма максимальных значений каждого столбца матрицы.