Другие языки программирования и технологии
Задача по программированию C++
Дана символьная матрица размером 13x18 . Найти номер первой по порядку строки матрицы, содержащей наибольшее количество цифр.
#include <iostream>
using namespace std;
void input(char* v, size_t n) {
for (auto i = 0U; i < n; ++i) cin >> v[i];
}
bool is_digit(char x) {
return x >= '0' && x <= '9';
}
unsigned count(char* v, size_t n) {
auto c = 0U;
for (auto i = 0U; i < n; ++i) if (is_digit(v[i])) ++c;
return c;
}
int main() {
const auto row = 13U;
const auto col = 18U;
char matrix[row][col];
cout << "Input matrix:\n";
for (auto i = 0U; i < row; ++i) input(matrix[i], col);
auto max = 0U;
auto pos = 0U;
for (auto i = 0U; i < row; ++i) {
auto tmp = count(matrix[i], col);
if (tmp > max) {
max = tmp;
pos = i + 1;
}
}
if (pos) cout << "Line: " << pos;
else cout << "Not found!";
cout.put('\n');
system("pause");
}
using namespace std;
void input(char* v, size_t n) {
for (auto i = 0U; i < n; ++i) cin >> v[i];
}
bool is_digit(char x) {
return x >= '0' && x <= '9';
}
unsigned count(char* v, size_t n) {
auto c = 0U;
for (auto i = 0U; i < n; ++i) if (is_digit(v[i])) ++c;
return c;
}
int main() {
const auto row = 13U;
const auto col = 18U;
char matrix[row][col];
cout << "Input matrix:\n";
for (auto i = 0U; i < row; ++i) input(matrix[i], col);
auto max = 0U;
auto pos = 0U;
for (auto i = 0U; i < row; ++i) {
auto tmp = count(matrix[i], col);
if (tmp > max) {
max = tmp;
pos = i + 1;
}
}
if (pos) cout << "Line: " << pos;
else cout << "Not found!";
cout.put('\n');
system("pause");
}
Виктор Из Астаны
Функция `std::isdigit` является элементом стандартной библиоеки. Зачем было изобретать этот велосипед с нуля?
Действительно. Задача. Ну решай
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <iomanip>
#include <ctime>
int main()
{
const size_t ROWS = 13;
const size_t COLUMNS = 18;
std::vector<std::vector<char>> matrix;
std::vector<int> counters;
srand(time(NULL));
for(size_t i = 0; i < ROWS; ++i) {
std::vector<char> temp;
for(size_t j = 0; j < COLUMNS; ++j)
temp.emplace_back(static_cast<char>(rand() % 96 + 31));
matrix.emplace_back(temp);
counters.emplace_back(0);
}
auto it = counters.begin();
std::for_each(matrix.begin(), matrix.end(), [&](std::vector<char>& iRow) {
std::for_each(iRow.begin(), iRow.end(), [&](char jCol) {
std::cout << std::left << std::setw(2) << jCol;
if (jCol > 47 && jCol < 58) (*it)++;
});
std::cout << std::endl;
it++;
});
auto result = std::max_element(counters.begin(), counters.end());
std::cout << distance(counters.begin(), result) << std::endl;
system("pause");
return 0;
}
#include <vector>
#include <algorithm>
#include <iterator>
#include <iomanip>
#include <ctime>
int main()
{
const size_t ROWS = 13;
const size_t COLUMNS = 18;
std::vector<std::vector<char>> matrix;
std::vector<int> counters;
srand(time(NULL));
for(size_t i = 0; i < ROWS; ++i) {
std::vector<char> temp;
for(size_t j = 0; j < COLUMNS; ++j)
temp.emplace_back(static_cast<char>(rand() % 96 + 31));
matrix.emplace_back(temp);
counters.emplace_back(0);
}
auto it = counters.begin();
std::for_each(matrix.begin(), matrix.end(), [&](std::vector<char>& iRow) {
std::for_each(iRow.begin(), iRow.end(), [&](char jCol) {
std::cout << std::left << std::setw(2) << jCol;
if (jCol > 47 && jCol < 58) (*it)++;
});
std::cout << std::endl;
it++;
});
auto result = std::max_element(counters.begin(), counters.end());
std::cout << distance(counters.begin(), result) << std::endl;
system("pause");
return 0;
}
Кирилл Свешников
А вас ещё не учили хоть как то код по функциям размазать?) Спагетти - наше все
Виктор Из Астаны
47? 58? Что это за магические константы и что они делают в коде?
Похожие вопросы
- Задача по программированию на C++ C++ C++ C++, не на Pascal
- Программирование задач на языке программирования C++.
- Как научиться решать задачи по программированию?
- Сборник/задачник реальных задач по программированию
- Помогите решить задачу на программирование!
- Стоит ли изучать язык программирования C++ ?И какое преимущество этого языка? Где он мне пригодится ?
- Основные различия языка программирования C# от С++.
- Язык программирования C.
- Помогите пожалуйста решить задачу по программированию. В чем я ошибаюсь?
- Помогите с задачей по программированию!! ! язык C#