Введение
В этом лабораторном задании мы напишем программу на C++, которая найдет строку в массиве, содержащую наибольшее количество четных чисел. Будем использовать двухмерный массив.
Объявить необходимые переменные
Мы создадим новый файл с именем main.cpp в директории ~/project с помощью следующей команды:
touch ~/project/main.cpp
Начнем с объявления необходимых переменных, которые включают в себя a, n, l, i, j и count.
int a[10][10], n, l, i, j, count = 0;
Получить размер матрицы и номер строки
Далее мы получим размерность матрицы и номер строки от пользователя. Для этого используем функцию cin для получения значений, введенных пользователем.
cout << "Enter matrix size(l * l): ";
cin >> l;
cout << "Enter row number of matrix: ";
cin >> n;
Проверить валидность ввода пользователя
Мы проверим валидность ввода пользователя, проверив, находится ли n в пределах размерности матрицы. Если это не так, мы выведем сообщение об ошибке и выйдем из программы.
if (n < 0 || n > l) {
cout << "Error: Row exceeds matrix size. Please enter a value > 0 and less than or equal to the size of matrix." << endl;
exit(0);
}
Получить значения матрицы
Мы будем использовать вложенные циклы for, чтобы получить значения матрицы от пользователя.
cout << "Enter the matrix values: " << endl;
for (i = 1; i <= l; i++) {
for (j = 1; j <= l; j++) {
cin >> a[i][j];
}
}
Найти строку с наибольшим количеством четных чисел
Мы будем использовать цикл for, чтобы пройти по строке и подсчитать количество четных чисел. Если текущее число четное, мы увеличим переменную count.
for (i = 1; i <= l; i++) {
if (a[n][i] % 2 == 0) {
count++;
}
}
Вывести результаты
Мы выведем значения строки и количество четных чисел в этой строке.
cout << "\nRow is given below:\n";
for (i = 1; i <= l; i++) {
cout << a[n][i] << " ";
}
cout << "\n\nNo. of even numbers in row is: " << count << endl;
Компилировать и запустить программу
Мы скомпилируем программу с использованием компилятора g++ и запустим ее в терминале.
$ g++ main.cpp -o main
$./main
Полный код
#include<iostream>
using namespace std;
int main() {
int a[10][10], n, l, i, j, count = 0;
cout << "Enter matrix size(l * l): ";
cin >> l;
cout << "Enter row number of matrix: ";
cin >> n;
if (n < 0 || n > l) {
cout << "Error: Row exceeds matrix size. Please enter a value > 0 and less than or equal to the size of matrix." << endl;
exit(0);
}
cout << "Enter the matrix values: " << endl;
for (i = 1; i <= l; i++) {
for (j = 1; j <= l; j++) {
cin >> a[i][j];
}
}
for (i = 1; i <= l; i++) {
if (a[n][i] % 2 == 0) {
count++;
}
}
cout << "\nRow is given below:\n";
for (i = 1; i <= l; i++) {
cout << a[n][i] << " ";
}
cout << "\n\nNo. of even numbers in row is: " << count << endl;
return 0;
}
Резюме
В этом практическом занятии мы научились реализовывать программу на C++, которая находит строку в двумерном массиве, содержащую наибольшее количество четных чисел. Мы добились этого, создав набор переменных и используя циклы для перебора элементов массива. Мы использовали условные операторы для вывода результатов программы.



