Получить скалярное произведение вектора на строку - C (СИ)
Формулировка задачи:
пожалуйста помогите решить задачи:
1)Дана матрица размера n*m, все элементы которой различны, и вектор из m элементов. Получить скалярное произведение этого вектора на стороку, первый элемент которой является минимальным из всех элементов первого столбца.
2)Дана матрица размера n*m, все элементы которой различны. Преобразовать матрицу путем удаления стороки и столбца, на пересечении которых расположен минимальный элемент заданной матрицы.
3)Дана квадратная матрица порядка n. Получить скалярное произведение ее диагоналей.
4)Дана матрица размерности n*m. Переставить столбцы этой матрицы в обратном порядке.
5)Дана матрица размерности n*m. Переставить в ней строки и столбцытаким образом, чтобы самый первый элемент и максимальный элемент при этом поменялись местами
Решение задачи: «Получить скалярное произведение вектора на строку»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
//перемножение вектора на строку с меньшим значением 1-го столбца
int main()
{
int matrix [5][6]={{1,2,3,4,5,6},{7,8,9,10,11,12},{13,14,15,16,17,18},{19,20,21,22,23,24},{25,26,27,28,29,30}};//матрица размером 5х6
int vector [6]={1,2,3,4,5,6};//вектор размером 6
int i, lineWithMinimalNumber=0;
for (i=1; i<5; i++) if (matrix[i][0]<matrix[i-1][0]) lineWithMinimalNumber=i;
printf("Result:\n");
for (i=0; i<6; i++)
{
vector[i]=vector[i]*matrix[lineWithMinimalNumber][i];
printf("%i", vector[i])+printf(" ");
}
getch();
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлены две матрицы: матрица
matrixразмером 5x6 и векторvectorразмером 6. - Вектор
vectorперемножается с первым столбцом матрицыmatrix. - Находится номер строки матрицы
matrix, у которой минимальное значение в первом столбце (это делается с помощью перебора строк с 1 по 4 и сравнения их значений в первом столбце). - Результат умножения вектора
vectorна строку с минимальным значением в первом столбце выводится на экран.