Посчитать сумму каждого столбца матрицы - C (СИ)
Формулировка задачи:
помогите посчитать сумму каждого столбца матр
если матр формирутся так
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 15
void InputMas(double M[][N], int n)
{
int i, j;
for(i=0; i<n; i++)
for(j=0; j<n; j++)
{
if (i>j) M[i][j]=tan(i);
if (i==j) M[i][j]=1/tan(i+j);
if (i<j) M[i][j]=tan(j);
}
}
void PrintMas(double M[][N], int n)
{
int i, j;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
printf(" %.2lf ",M[i][j]);
}
printf("\n");
}
}
void Sum()
{
//здесь должна быть ф-ция вычисления суммы каждого столбца и вывести миинимальную из них
}
int main(void)
{
double M[N][N];
double S[N];
int n, i,k;
do
{
printf("Vvedite razmernost(do 15):");
scanf("%d", &n);
if (n>15 || n<=0) printf("Nedopustimaya razmernost\n");
}while(n>15 || n<=0);
InputMas(M, n);
PrintMas(M, n);
Sum(M, S, n);
printf("\n");
system("pause");
}Решение задачи: «Посчитать сумму каждого столбца матрицы»
textual
Листинг программы
void Sum(double mas[][N])
{
double sum[N];
int i, j, imin;
for(j = 0; j < N; ++j)
{
sum[j] = mas[0][j];
for(i = 1; i < N; ++i)
sum += mas[i][j];
}
imin = 0;
for(i = 1; i < N; ++i)
if(sum[i] < sum[imin])
imin = i;
printf("Total in columns:");
for(i = 0; i < N; ++i)
printf("%.2lf ", sum[i]);
printf("Minimal sum in %d column and equal %.2lf", imin, sum[imin]);
}
Объяснение кода листинга программы
В этом коде реализуется функция, которая вычисляет сумму каждого столбца матрицы.
- Тип данных и параметры функции:
- Тип данных функции: void.
- Параметр функции: double mas[][N].
- N - размерность матрицы.
- Объявление переменных:
- double sum[N]; - массив для хранения суммы каждого столбца.
- int i, j, imin; - целочисленные переменные для циклов.
- Вычисление суммы каждого столбца:
- Цикл for для прохода по каждому столбцу матрицы (переменная j).
- Переменная sum[j] инициализируется значением элемента mas[0][j].
- Цикл for для прохода по остальным строкам матрицы (переменная i).
- Значение каждого элемента mas[i][j] добавляется к sum[j].
- Поиск столбца с минимальной суммой:
- Цикл for для прохода по всем столбцам матрицы (переменная i).
- Если sum[i] меньше значения sum[imin], то imin обновляется значением i.
- Вывод результатов:
- Вывод строки
Total in columns:и всех значений sum[i] с пробелом между ними. - Вывод строки
Minimal sum in %d column and equal %.2lf, где %d - значение переменной imin, и %.2lf - значение sum[imin].
- Вывод строки