Тема: Скалярний добуток векторів
Підскажіть як можна виконати программу
Дано одномірні масиви а та б кожен з якіх містить n – елементів. Скласти програму що шукає скалярний добуток елементів двох масивів.
Буду вдячний за приклад виконання.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Скалярний добуток векторів
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Підскажіть як можна виконати программу
Дано одномірні масиви а та б кожен з якіх містить n – елементів. Скласти програму що шукає скалярний добуток елементів двох масивів.
Буду вдячний за приклад виконання.
Просто в циклі додаєте попарні добутки до однієї змінної.
Це якщо просто якийсь геній на автоматі переклав вектори як масиви, а не визначив скалярний добуток для масивів як щось інше.
<int SortMas(float a[], float b[], int* n, int a, int b, int c) {
cout << "Åëåìåíòè ìàñèâó ï³ñëÿ âïîðÿäêóâàííÿ:";
cout << endl;
for (int i = 0; i < *n; i++) {
a=*(a+i);
b=*(b+i);
c=a*b;
}
return 0;
}>
В чому тут помилка ?
<int SortMas(float a[], float b[], int* n, int a, int b, int c) { cout << "Åëåìåíòè ìàñèâó ï³ñëÿ âïîðÿäêóâàííÿ:"; cout << endl; for (int i = 0; i < *n; i++) { a=*(a+i); b=*(b+i); c=a*b; } return 0; }>
В чому тут помилка ?
в кодуванні
В чому тут помилка ?
На це питання вам добре відповість компілятор.
Спробуйте переформулювати питання і отримати відповідь самостійно. За 2-3 цикли ви або запустите програму, або нарешті отримаєте таке питання, яке варто ставити на форумі.
#include <iostream>
float DotProduct(float[], float[], size_t&);
int main() {
size_t len = 4;
float A[len] = {2, 4, 6, 8};
float B[len] = {1, 3, 5, 7};
std::cout << DotProduct(A, B, len);
}
float DotProduct(float a[], float b[], size_t &n) {
float sum = 0.;
for (size_t i = 0; i < n; i++) {
sum += a[i] * b[i];
}
return sum;
}
Чому без const? Ви ж тільки sum змінюєте, все решта має бути const! І це в 2020 році!
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися