Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 35
1

Написать программу, которая находит количество строк, содержащих хотя один элемент кратный 3

23.11.2020, 18:01. Показов 2002. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана целочисленная матрица размером n * m и число. Написать программу, которая находит количество строк, содержащих хотя бы 1 элемент кратный 3.

Я написал код, но нахождение количества строк работает как-то неправильно и выдает странные значения. Скорее всего, я ошибся где-то в коде, но ошибок компилятор не выдает. На комментарии на украинском языке не обращайте внимания, там важного ничего нет.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <cstdlib>
#include <iomanip> 
#include "windows.h"
#include "time.h"
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    srand(time(NULL));
    const int ROWS = 5;
    const int COLS = 5;
    int matrix[ROWS][COLS];
    
    for (int i = 0; i < ROWS; i++) // генерація масиву та заповнення його випадковими числами від -200 до 200 
    {
        for (int j = 0; j < COLS; j++)
        {
            matrix[i][j] = rand() % 401 - 200; // я обмежив діапазон генеруємих чисел, щоб вони були не такі великі
        }
    }
 
    cout << "Ми маємо таку матрицю 5х5: " << endl << endl;
    for (int i = 0; i < ROWS; i++) // вивід матриці в консоль
    {
        for (int j = 0; j < COLS; j++)
        {
            cout << matrix[i][j] << "\t";
        }
        cout << endl << endl;
    }
 
    int number = 0;
    for (int i = 0; i < ROWS; i++) // знаходження кількість рядків, що містять хоча б 1  елемент кратний 3
    {
        for (int j = 0; j < COLS; j++)
        {
            if (matrix[i][j] % 3 ) { 
                number++;
            }
        }
    }
    
    cout << "Кількість рядків, що містять хоча б один елемент кратний 3: " << number << endl;
 
    system("PAUSE");
    return 0;
}
Вот как это выглядит в консоле:
Написать программу, которая находит количество строк, содержащих хотя один элемент кратный 3
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2020, 18:01
Ответы с готовыми решениями:

Определить количество строк, содержащих хотя бы один нулевой элемент
13) Дана целочисленная прямоугольная матрица. Определить количество строк, содержащих хотя бы один...

Определить количество строк, содержащих хотя бы один нулевой элемент.
Задание: Дана целочисленная прямоугольная матрица. Определить: Количество строк, содержащих хотя бы...

Подсчитать количество строк, содержащих хотя бы один нулевой элемент
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;cmath&gt; #include &lt;math.h&gt; ...

Определить количество строк, содержащих хотя бы один нулевой элемент
Дана целочисленная прямоугольная матрица. Определить: 1) количество строк, содержащих хотя бы...

7
51 / 30 / 22
Регистрация: 30.04.2020
Сообщений: 59
23.11.2020, 18:49 2
Артем Лайтер, у вас действительно есть ошибки в реализации части программы, которая считает количество строк.

Результат деления по модулю ни с чем не сравнивается, поэтому ваш алгоритм считает все элементы матрицы, не кратные трём.

В цикле значение number увеличивается при каждом найденном числе. В этом случае было бы хорошо выходить из внутреннего цикла при нахождении числа, соответствующего условию.

Подправил вам фрагмент кода:
C++
1
2
3
4
5
6
7
8
9
10
for (int i = 0; i < ROWS; i++) // знаходження кількість рядків, що містять хоча б 1  елемент кратний 3
    {
        for (int j = 0; j < COLS; j++)
        {
            if (matrix[i][j] % 3 == 0 && matrix[i][j] != 0) { 
                number++;
                break;
            }
        }
    }
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.11.2020, 19:01 3
Цитата Сообщение от Egorb17 Посмотреть сообщение
Подправил вам фрагмент кода:
что-то не очень подправил
Цитата Сообщение от Egorb17 Посмотреть сообщение
чтобы обход по столбцам был вложенным
ТС нужно определить количество строк. это что ?
Цитата Сообщение от Egorb17 Посмотреть сообщение
matrix[i][j] != 0
исправил:
C++
1
2
3
4
5
6
7
8
9
10
for (int i = 0; i < ROWS; i++) // знаходження кількість рядків, що містять хоча б 1  елемент кратний 3
    {
        for (int j = 0; j < COLS; j++)
        {
            if (matrix[i][j] % 3 == 0) { 
                number++;
                break;
            }
        }
    }
0
51 / 30 / 22
Регистрация: 30.04.2020
Сообщений: 59
23.11.2020, 19:05 4
Yetty, если элемент матрицы будет равен нулю, то при делении по модулю на 3 получим 0, а 0 же не кратен трём.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.11.2020, 19:08 5
Egorb17, почему не кратен ? 0 кратен трём
0
51 / 30 / 22
Регистрация: 30.04.2020
Сообщений: 59
23.11.2020, 19:11 6
Yetty, если считать так, то вы всё верно написали
0
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 35
23.11.2020, 19:17  [ТС] 7
Спасибо за помощь! Действительно, я допустил такую элементарную ошибку
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.11.2020, 19:18 8
Цитата Сообщение от Egorb17 Посмотреть сообщение
если считать так
как ещё можно считать ? число n кратно числу m если число n делится на m без остатка. 0 на 3 делится без остатка.
0
23.11.2020, 19:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2020, 19:18
Помогаю со студенческими работами здесь

Определить количество строк, содержащих хотя бы один нулевой элемент
Дана целочисленная прямоугольная матрица. Определить: 1) количество строк, содержащих хотя бы...

Определить количество строк, содержащих хотя бы один нулевой элемент
Всем привет, не могу разобраться. Есть пример нахождения первой из строк, которая содержит ноль....

Определить количество строк, содержащих хотя бы один нулевой элемент
Здравствуйте, дорогие форумчане. На предмете программирования задали написать программу по...

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

Найти количество строк матрицы, содержащих хотя бы один нулевой элемент
пожалуйста помогите с программой надо найти: количество строк, содержащих хотя бы один нулевой...

Определить количество строк матрицы, содержащих хотя бы один нулевой элемент
Вот есть задача: Данная целочисленная прямоугольная матрица. определить  количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru