1.Заданы три одномерных массива одинаковой размерности. Организовать ввод и вывод на экран массивов с использованием функций программиста.
2.Найти количество максимальных элементов каждого массива, используя функцию программиста.
3.В том массиве, где максимальных элементов более одного, обнулить их.
C/C++
Помогите пожалуйста. Буду очень благодарен
#include <iostream>
using namespace std;
void input(const char* name, int* v, size_t n) {
for (auto i = 0U; i < n; ++i) {
cout << name << '[' << i << "] -> ";
cin >> v[i];
}
system("cls");
}
void output(const char* name, int* v, size_t n) {
cout << name << ':';
for (auto i = 0U; i < n; ++i) {
cout << ' ' << v[i];
}
puts("");
}
pair<int, int> max_count(int* v, size_t n) {
auto max = v[0];
auto count = 1;
for (auto i = 1U; i < n; ++i) {
if (v[i] == max) {
++count;
} else if (v[i] > max) {
max = v[i];
count = 1;
}
}
return { max, count };
}
void replace(int* v, size_t n, int dest, int src) {
for (auto i = 1U; i < n; ++i) {
if (v[i] == dest) {
v[i] = src;
}
}
}
int main() {
const auto n = 10;
int a[n], b[n], c[n];
input("a", a, n);
input("b", b, n);
input("c", c, n);
output("a", a, n);
auto [max_a, count_a] = max_count(a, n);
if (count_a > 1) replace(a, n, max_a, 0);
output("a", a, n);
puts("");
output("b", b, n);
auto [max_b, count_b] = max_count(b, n);
if (count_b > 1) replace(b, n, max_b, 0);
output("b", b, n);
puts("");
output("c", c, n);
auto [max_c, count_c] = max_count(c, n);
if (count_c > 1) replace(c, n, max_c, 0);
output("c", c, n);
system("pause > nul");
}
using namespace std;
void input(const char* name, int* v, size_t n) {
for (auto i = 0U; i < n; ++i) {
cout << name << '[' << i << "] -> ";
cin >> v[i];
}
system("cls");
}
void output(const char* name, int* v, size_t n) {
cout << name << ':';
for (auto i = 0U; i < n; ++i) {
cout << ' ' << v[i];
}
puts("");
}
pair<int, int> max_count(int* v, size_t n) {
auto max = v[0];
auto count = 1;
for (auto i = 1U; i < n; ++i) {
if (v[i] == max) {
++count;
} else if (v[i] > max) {
max = v[i];
count = 1;
}
}
return { max, count };
}
void replace(int* v, size_t n, int dest, int src) {
for (auto i = 1U; i < n; ++i) {
if (v[i] == dest) {
v[i] = src;
}
}
}
int main() {
const auto n = 10;
int a[n], b[n], c[n];
input("a", a, n);
input("b", b, n);
input("c", c, n);
output("a", a, n);
auto [max_a, count_a] = max_count(a, n);
if (count_a > 1) replace(a, n, max_a, 0);
output("a", a, n);
puts("");
output("b", b, n);
auto [max_b, count_b] = max_count(b, n);
if (count_b > 1) replace(b, n, max_b, 0);
output("b", b, n);
puts("");
output("c", c, n);
auto [max_c, count_c] = max_count(c, n);
if (count_c > 1) replace(c, n, max_c, 0);
output("c", c, n);
system("pause > nul");
}
Похожие вопросы
- Помогите пожалуйста не понимаю как делать. Буду очень благодарен
- Помогите, пожалуйста, задачу решить, времени не хватает, буду благодарен
- Помогите пожалуйста решить задачу, буду благодарен
- Решите пожалуйста на С++. Буду очень благодарен за помощь.
- Помоги пожалуйста с программой в С++
- Помогите пожалуйста написать программу на Си
- Помогите пожалуйста уже голову сломал, ничего не получается, когда перегружаю шаблонный оператор << ,
- Помогите пожалуйста написать код.(C++)
- Задачки по С++ (помогите пожалуйста кто какие сможет)
- С++, реализовать код с помощью функции, помогите пожалуйста, очень нужно
много ошибок