
Напишите программу на С++ пожалуйста Дана целочисленная прямоугольная матрица. Определить: а)
количество строк, не содержащих ни одного нулевого элемента; б) максимальное из чисел, встречающихся в заданной матрице более одного раза. ещё нужно скрины работы программы

Ответы на вопрос

а)
#include <iostream>
#include <vector>
using namespace std;
bool is_any_nulls(vector<int> vec){
for(int i: vec)
if(i == 0)
return true;
return false;
}
signed main() {
int n,m;
cin >> n >> m;
vector<vector<int>> a(n);
for(int i = 0; i < n; i++){
vector<int> temp(m);
for(int &j: temp)
cin >> j;
a[i] = temp;
}
int cnt = 0;
for(vector<int> i: a)
if(!is_any_nulls(i))
cnt++;
cout << cnt;
}
б)
#include <iostream>
#include <vector>
#include <map>
using namespace std;
signed main() {
int n, m;
cin >> n >> m;
map<int,int> mp;
vector<vector<int>> a(n);
for (int i = 0; i < n; i++) {
vector<int> temp(m);
for (int &j: temp){
cin >> j;
mp[j]++;
}
a[i] = temp;
}
int mx = -INT_MAX;
for(auto i: mp)
if(i.first > mx && i.second > 1)
mx = i.first;
cout << mx;
}



Конечно, вот пример программы на C++, которая выполняет указанные вами задачи:
cpp#include <iostream>
#include <vector>
#include <unordered_map>
int main() {
int rows, cols;
std::cout << "Введите количество строк: ";
std::cin >> rows;
std::cout << "Введите количество столбцов: ";
std::cin >> cols;
// Ввод матрицы
std::vector<std::vector<int>> matrix(rows, std::vector<int>(cols));
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
std::cout << "Введите элемент [" << i << "][" << j << "]: ";
std::cin >> matrix[i][j];
}
}
// а) Подсчет строк без нулевых элементов
int rowsWithoutZeros = 0;
for (int i = 0; i < rows; ++i) {
bool hasZero = false;
for (int j = 0; j < cols; ++j) {
if (matrix[i][j] == 0) {
hasZero = true;
break;
}
}
if (!hasZero) {
rowsWithoutZeros++;
}
}
std::cout << "Количество строк без нулевых элементов: " << rowsWithoutZeros << std::endl;
// б) Поиск максимального числа, встречающегося более одного раза
std::unordered_map<int, int> numFrequency;
int maxRepeatedNumber = -1;
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
numFrequency[matrix[i][j]]++;
if (numFrequency[matrix[i][j]] > 1 && (maxRepeatedNumber == -1 || numFrequency[matrix[i][j]] > numFrequency[maxRepeatedNumber])) {
maxRepeatedNumber = matrix[i][j];
}
}
}
if (maxRepeatedNumber != -1) {
std::cout << "Максимальное число, встречающееся более одного раза: " << maxRepeatedNumber << std::endl;
} else {
std::cout << "В матрице нет чисел, встречающихся более одного раза." << std::endl;
}
return 0;
}
Чтобы выполнить эту программу, скопируйте код выше, вставьте его в файл с расширением .cpp
и скомпилируйте с помощью компилятора C++. После запуска программы, вам будет предложено ввести размер матрицы и её элементы. Программа выведет результаты для обеих задач.
К сожалению, я не могу предоставить скриншоты работы программы, так как моя текущая среда не поддерживает графические возможности.


Похожие вопросы







Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili