ванёк10062005
10.02.2021 16:39

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

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;
}

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
flamerplay123
28.07.2020 18:41
1) Это явно шифр замены. Мы знаем, что:
А = Я, Н = С, Т = М, О = Р, М = Т, И = Ц, Х = Й, Л = У, Ь = Г,
Е = Ъ, В = Э, Г = Ь, Й = Х.
Этого достаточно, чтобы подставить буквы и получить
НМЪПЯС = СТЕ*АН, очевидно, что это СТЕПАН.
А если немного подумать, то можно догадаться, какой это шифр.
Взяли алфавит и написали два раза - прямо и наоборот.
Каждая буква из 1 алфавита заменяется на букву 2 алфавита.
А = Я, Б = Ю, В = Э, Г = Ь, и так далее.

2) Про Виталия. Из 96 друзей 76 знают Павла и 56 знают Андрея.
Значит, минимум 76+56-96 = 36 чел знают и Павла и Андрея.
Про Павла. Из 162 друзей 96 знают Андрея и 76 знают Виталия.
Минимум 96+76-162 = 10 знают и Андрея и Виталия.
Про Андрея. Из 108 друзей 56 знают Виталия и 96 знают Павла.
Минимум 56+96-108 = 44 знают и Виталия и Павла.
Выбираем наибольшее из минимальных чисел.
ответ: минимум 44 чел знакомы со всеми тремя парнями.
0,0(0 оценок)
Ответ:
Inna050798
10.08.2021 22:15

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <ctime>

using namespace std;

int main()

{

 int y;

 char buffer[80];

 cout << "Year = ";

 cin >> y;

 tm time_in;

 time_in.tm_sec = 0;  // second

 time_in.tm_min = 0;  // minute

 time_in.tm_hour = 0; // hour

 time_in.tm_mday = 1; // 1-based day

 time_in.tm_mon = 9;  // 0-based month

 time_in.tm_year = y - 1900; // year since 1900

 time_t time_temp = mktime (&time_in);   // Convert the local time to a calendar value.

 tm* time_out = localtime (&time_temp);  // Converts a time_t time value to a tm structure

 if (time_out->tm_wday > 0)              // if it is not Sunday, go to the next Sunday

   time_out->tm_mday += 7 - time_out->tm_wday;

 

 strftime(buffer, 80, "%d.%m.%Y", time_out);  // date formatting for output

 cout << "\nTeachers day is " << buffer << "\n";

}

Объяснение: explanations in the comments to the program

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