Answer the question
In order to leave comments, you need to log in
What is wrong with C++ code?
There is a simple C++ program where I find the scalar product of matrix vectors under some conditions. Here is the code:
#include <iostream>
using namespace std;
int main() {
// Задаю матрицу
float a[3][3] = {{1,2,3},
{4,5,6},
{6,0,4}};
int min = a[0][0];
int imin = 0;
int jmin = 0;
for (int j = 0; j < 3; j++) {
cout << a[0][j] << " | ";
}
cout << "\n";
for (int j = 0; j < 3; j++) {
cout << a[1][j] << " | ";
}
cout << "\n";
for (int j = 0; j < 3; j++) {
cout << a[2][j] << " | ";
}
// Ищу минимальный элемент и его индексы
for (int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
if (min > a[i][j]) {
imin = i;
jmin = j;
}
}
}
cout << "\nimin: " << imin+1 << endl;
cout << "jmin: " << jmin+1 << endl;
// Беру нужные векторы
int ai[3];
int aj[3];
cout << "Строка с минимальным элементом: ";
for (int j = 0; j < 3; j++) {
ai[j] = a[imin][j];
}
for (int j = 0; j < 3; j++) {
cout << ai[j] << " ";
}
cout << "\nСтолбец с минимальным элементом: ";
for (int i = 0; i < 3; i++) {
aj[i] = a[i][jmin];
}
for (int i = 0; i < 3; i++) {
cout << aj[i] << " ";
}
//Скалярное произведение
float scal = 0;
for (int i = 0; i < 3; i++) {
scal += ai[i] * aj[i];
}
cout << "\nСкалярное произведение: " << scal;
return 0;
}
#include <iostream>
using namespace std;
float fobr(float *af, int nf);
int main() {
// Задаю матрицу
int n = 3;
float a[n][n] = {{1,2,3},
{4,5,6},
{6,0,4}};
float sc;
for (int j = 0; j < n; j++) {
cout << a[0][j] << " | ";
}
cout << "\n";
for (int j = 0; j < n; j++) {
cout << a[1][j] << " | ";
}
cout << "\n";
for (int j = 0; j < n; j++) {
cout << a[2][j] << " | ";
}
sc = fobr(a,n);
}
//---------------------------------------------------------------------------
float fobr(float *af, int nf) {
int min = af[0][0];
int imin = 0;
int jmin = 0;
// Ищу минимальный элемент и его индексы
for (int i = 0; i < nf; i++) {
for(int j = 0; j < nf; j++) {
if (min > af[i][j]) {
imin = i;
jmin = j;
}
}
}
cout << "\nМинимальный элемент находится в строке " << imin+1 << endl;
cout << "Минимальный элемент находится в столбце " << jmin+1 << endl;
// Беру нужные векторы
int ai[nf];
int aj[nf];
cout << "Строка с минимальным элементом: ";
for (int j = 0; j < nf; j++) {
ai[j] = af[imin][j];
}
for (int j = 0; j < nf; j++) {
cout << ai[j] << " ";
}
cout << "\nСтолбец с минимальным элементом: ";
for (int i = 0; i < nf; i++) {
aj[i] = af[i][jmin];
}
for (int i = 0; i < nf; i++) {
cout << aj[i] << " ";
}
//Скалярное произведение
float scal = 0;
for (int i = 0; i < nf; i++) {
scal += ai[i] * aj[i];
}
cout << "\nСкалярное произведение: " << scal;
return scal;
}
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question