.Все .Биология.Информатика.Видео-ответы.Физика.Французский язык.Русский язык.Қазақ тiлi.История.Окружающий мир.География.Обществознание.Алгебра.Психология.МХК.Другие предметы.Английский язык.Українська література.Право.ОБЖ.Немецкий язык.Українська мова.Беларуская мова.Музыка.Химия.Экономика.Геометрия.Литература
angelinaguseyn
angelinaguseyn
23.11.2019 18:45 •  Информатика

Нужна , нужно написать подпрограмму на языке си, которая
находит номер первого столбца таблицы, для которого скалярное произведение на заданный вектор минимально.
вот мой код, но там какая - то ошибка, исправить:

const int rows = 100, cols = 100; //максимальный размер массва 100х100
double a[rows][cols];
double table = a[rows][cols];
bool scal(double & table, int n, int m, int & n)
{
//подпрограмма находит номер первого столбца таблицы, для которого скалярное произведение на заданный вектор минимально;
//входные параметры: table - двумерный статический массив вещественных чисел;
// n, m - количество строк и столбцов таблицы;
// выходной параметр: n - искомый номер столбца.
// функция возвращает true - если результат найден
// false - если размеры заданы некорректно, в этом случае n - неопределено

double vec[rows];
int i, j;
double s = 0, t;
bool er = false;
setlocale(lc_all, "rus");
srand(time(null));
printf("заданный вектор: ");
for (i = 0; i < n; i++) {
vec[i] = rand();
printf("%lf ", vec[i]); //задаём координаты вектора псевдослучайными числами
}
for (j = m - 1; j> =0; --j) { //проверяем столбцы таблицы, начиная с последнего
for (i = 0; i < n; i ++)
s += a[i][j] * vec[i]; //считаем скалярное произведение столбца массива на заданный вектор
if (j = m - 1) {
n = m - 1;
t = s;
s = 0;
}
else {
if (s < t) //если скалярное произведение данного столбца на вектор меньше чем произведение предыдущего, присваиваем переменной n номер этого столбца
n = j;
t = s; //присваиваем переменной t произведение данного столбца на вектор для дальнейшнго сравнения
s = 0;
} //переменную s зануляем, чтобы посчитать произведение следующего столбца на вектор
}
if (n > 0 || m > 0 || n < = rows || m < = cols) er = true; //проверка входных параметров на допустимость
return er;
}

Показать ответ
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь понять?
Спроси здесь