Функция скалярного произведения векторов - C (СИ)
Формулировка задачи:
Доброго времени суток.Помогите с решением задачи:нахождение скалярного произведения векторов.
С 13 по 33 строку,код исправен,далее когда на 33 строке идет вызов функции,уже следует вопрос,делал в функции тросировку,дабы проверить правильные ли данные подаются,выяснилось что правильные,а вот в res уже следует ошибка.Помогите построить правильно.
З.Ы.Знаю что функцию скалярного произведения можно написать куда легче и проще,но интересует данное решение.Заранее спасибо.
#include<stdio.h> double scalar_product(double a[],double b[],int N) { int i; double res; for (i=0;i<N;i++) { res+=a[i]*b[i]; } return res; } int main() { double *u; double *v; int size; int i; double s; size=3; u=(double*)malloc(size*sizeof(double)); v=(double*)malloc(size*sizeof(double)); printf("Vvedite koordinaty x,y,z vektora A: \n"); for(i=0;i<size;i++) { scanf("%i", &(u[i])); } printf("Vvedite koordinaty x,y,z vektora B: \n"); for(i=0;i<size;i++) { scanf("%i", &(v[i])); } s=scalar_product(u,v,size); printf("Scalyarnoe proizvedenie vektora A i B ravno = %d",s); }
Решение задачи: «Функция скалярного произведения векторов»
textual
Листинг программы
double scalar_product(double a[],double b[],int N) { int i; double res; res=0; for (i=0;i<N;i++) { res+=a[i]*b[i]; } return res; }
Объяснение кода листинга программы
- В функции
scalar_product
есть три параметра:a[]
,b[]
иN
. - Переменная
res
инициализируется значением 0 и используется для хранения результата скалярного произведения. - Используется цикл
for
, который выполняетсяN
раз, гдеi
- это текущая итерация цикла. - Внутри цикла происходит умножение элементов
a[i]
иb[i]
и результат добавляется кres
. - После завершения цикла, функция возвращает значение
res
. - Если
a[]
иb[]
являются векторами, то эта функция вычисляет их скалярное произведение. - Скалярное произведение двух векторов определяется как произведение длин этих векторов на косинус угла между ними.
- Для вычисления скалярного произведения, векторы должны иметь одинаковую длину.
- Эта функция может быть использована для вычисления угла между двумя векторами, если их длины известны.
- Эта функция может быть использована для определения, являются ли два вектора ортогональными (перпендикулярными), если их скалярное произведение равно нулю.
- Эта функция может быть использована для нахождения проекции одного вектора на другой.
- Эта функция может быть использована для нахождения вектора, являющегося линейным комбинацией двух других векторов.
- Эта функция может быть использована для нахождения вектора, являющегося конгруэнтной комбинацией двух других векторов.
- Эта функция может быть использована для нахождения вектора, являющегося ортогональной проекцией одного вектора на другой.
- Эта функция может быть использована для нахождения вектора, являющегося касательным вектором к поверхности, заданной векторами
a[]
иb[]
. - Эта функция может быть использована для нахождения вектора, являющегося нормальным вектором к поверхности, заданной векторами
a[]
иb[]
. - Эта функция может быть использована для нахождения вектора, являющегося бинормальным вектором к поверхности, заданной векторами
a[]
иb[]
. - Эта функция может быть использована для нахождения вектора, являющегося бипараллельным вектором к поверхности, заданной векторами
a[]
иb[]
. - Эта функция может быть использована для нахождения вектора, являющегося перпендикулярным проекцией одного вектора на другой.
- Эта функция может быть использована для нахождения вектора, являющегося проекцией одного вектора на плоскость, заданную векторами
a[]
иb[]
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д