Автор статьи
Валерия
Эксперт по сдаче вступительных испытаний в ВУЗах
Найти среднее арифметическое положительных элементов вектора X, имеющих четный номер, и среднее арифметическое отрицательных элементов вектора Y, имеющих нечетный номер.
#include <algorithm> #include <iostream> #include <iterator> #include <string> #include <vector> #include <cstdlib> #include <sstream> int main() { double average1 = 0; // Здесьбудетхранитьсясумманужныхэлементовпервоговектора. double average2 = 0; int count1 = 0; // Здесь хранится количество нужных элементов. int count2 = 0; setlocale(LC_ALL, "Russian"); //просто подключили подддержку русских символов в консоли. std::cout<< "Введите числа первого вектора (X) через пробел. В конце ввода нажмите Enter.\n"; std::string s1; // Ввод вектора в консоль будет происходить через ввод строки, здесь она объявляется. std::getline(std::cin, s1); // Функция считывает всю строку до Enter из консоли. if (s1.length()==0) // Если не было введено ни одного числа — программа завершается с ошибкой. { std::cout<< "Ошибка: данные не введены.\n"; system("pause"); return 1; } std::stringstreamss(s1); // Нужно чтобы перевести строку в вектор чисел. std::vector<int> X; copy(std::istream_iterator<int>(ss), {}, back_inserter(X)); // Копированиеэлементовввектор. std::cout<< "Введите числа второго вектора (Y) через пробел. В конце ввода нажмите Enter.\n"; std::string s2; std::getline(std::cin, s2); if (s2.length()==0) { std::cout<< "Ошибка: данные не введены.\n"; system("pause"); return 1; } std::stringstream ss2(s2); std::vector<int> Y; copy(std::istream_iterator<int>(ss2), {}, back_inserter(Y)); for (auto i = 0; i <X.size(); i++) // Проходим в цикле от 1 элемента вектора до последнего. Т.к. индексация начинается с 0, четные позиции чисел соответствуют нечетному индексу. { if (i % 2 == 1) // Условие четной позиции. { if (X.at(i) >= 0) // Условие положительности числа. { average1 += X.at(i); // Прибавляем число к сумме. count1++; // Увеличиваем значение счетчика чисел. } } } for (auto i = 0; i <Y.size(); i++) // Такой же цикл, как и предыдущий, но с условиями для второго вектора. { if (i % 2 == 0) { if (Y.at(i) < 0) { average2 += Y[i]; count2++; } } } std::cout<< "Среднееарифмеитческоеэлементоввектора X:" << (double)(average1 / count1) << "\n" << "Среднее арифмеитческое элементов вектора Y:" << (double)(average2 / count2) << "\n"; system("pause"); }
Найти число строк матрицы, сумма элементов которых меньше 0.
#include <iostream> #include <vector> int main() { setlocale(LC_ALL, "Russian"); //просто подключили подддержку русских символов в консоли. Int str = 0, stlb = 0; // Переменные, хранящие размер матрицы. std::cout<< "Количество строк:"; std::cin>>str; std::cout<< "Количество столбцов:"; std::cin>>stlb; std::vector<std::vector<float>>matrix(str, std::vector<float>(stlb));/*Создается вектор, каждый элемент которго тоже является вектором. В результате matrix — двумерный вектор.*/ std::cout<< "Вводите числа построчно через пробел. в конце строки нажмите Enter:\n"; for (auto i = 0; i <str; i++) // В цикле считываются все элементы матрицы. { for (auto j = 0; j <stlb; j++) { std::cin>> matrix[i][j]; } } Int count = 0; // Переменная, в которой хранится количество нужных строк. for (auto i = 0; i< str; i++) { float summ = 0; for (auto j = 0; j <stlb; j++) { summ+=matrix[i][j]; // Суммируем все элементы строки. } if (summ< 0) // Если сумма элементов какой-либо строки < 0, то увеличиваем счетчик. count++; } std::cout<< "Количество строк, сумма элементов которых меньше 0 = " <<count; //Выводим полученное значение. }

или напишите нам прямо сейчас
⚠️ Пожалуйста, пишите в MAX или заполните форму выше.
В России Telegram и WhatsApp блокируют - сообщения могут не дойти.
О сайте
Ссылка на первоисточник:
http://www.omua.ru
Поделитесь в соцсетях: