С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534

В каждой строке матрицы найти элемент со значением вне заданного диапазона

15.05.2021, 20:54. Показов 2916. Ответов 10
Метки нет (Все метки)

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

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
#include
using namespace std;
 
int main ()
{
    int n, m[20][20];
    cout << "n = ";
    cin >> n;
    
    cout << "matrix" << endl;
    for (int i = 0; i < n; i++)
        if(i%2==1)
            for (int j = 0; j < n; j++)
                cin >> m[i][j];
        else
            for (int j = n - 1; j >= 0; j--)
                cin >> m[i][j];
                
    cout<< "matrix" << endl;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
           cout << m[i][j] << "\t";
        cout << endl;
    }
    
    system("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.05.2021, 20:54
Ответы с готовыми решениями:

Поиск в каждой строке матрицы первого элемента со значением вне заданного интервала
Составить программу для ввода в ЭВМ произвольной вещественной квадратной матрицы и поиска в каждой строке этой матрицы первого по порядку...

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

Найти в каждой четной строке матрицы элемент с максимальным значением
№ 2. Задать с клавиатуры целочисленную матрицу NxM. Найти в каждой четной строке матрицы элемент с максимальным значением. Вывести на экран...

10
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.05.2021, 22:17
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
#include <iostream>
#include <iomanip>
#include <utility>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n, m, k;
    double a, b;
    cout << "n="; cin >> n;
    cout << "m="; cin >> m;
    
    cout << "Enter limits\n";
    cout << "a="; cin >> a;
    cout << "b="; cin >> b;
    if(a>b) swap(a,b);
    
      int **c = new int*[n]; 
    for (int i = 0; i < n; i++)
       c[i] = new int[m];
    
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            c[i][j]=rand()%100;
            cout << setw(3) << c[i][j];
        }
    cout << "\n";
    }
    
    for (int i = 0; i < n; i++)
    {
        k=0;
        cout << "Row" << i+1 << ": ";
        for (int j = 0; j < m; j++)        
            if (c[i][j]<a || c[i][j]>b) {k=1; cout << c[i][j] << "\n";break;} 
        if(k==0) cout << "not found\n";    
    }
    
    for (int i = 0; i < n; i++)
    delete[]c[i];
    delete[]c;
system("pause");
return 0;
}
1
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
16.05.2021, 01:15  [ТС]
Yetty, Спасибо за программу, сел и разобрался как и что работает, только вот не пойму для чего мы вводим a,b и что в них нужно вводить, но что они должны выводить элементы это понятно.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
16.05.2021, 01:42
Лучший ответ Сообщение было отмечено goodrogrammer как решение

Решение

goodrogrammer, есть диапазон [a,b] соответственно a и b его границы. например задал диапазон [15,50] число например 20 входит в диапазон, число 55 не входит

Добавлено через 7 минут
пример. диапазон [30,70]
матрица:
23 45 65 <-- первое число, которое не входит в диапазон: 23
45 88 11 <-- первое число, которое не входит в диапазон: 88
35 55 50 <-- not found (не найдено) все числа входят в диапазон
1
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
16.05.2021, 17:44  [ТС]
Yetty, спасибо большое за помощь и ответ

Добавлено через 2 часа 33 минуты
Yetty, Можете подсказать, а где в дальнейшем эта программа используется? Для чего она нужна вообще, это же даже не похоже на калькулятор.
0
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
20.05.2021, 13:28  [ТС]
Yetty, как с указателями сделать?
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
20.05.2021, 13:40
Лучший ответ Сообщение было отмечено goodrogrammer как решение

Решение

Цитата Сообщение от goodrogrammer Посмотреть сообщение
как с указателями сделать?
Переделал немного из его кода с использованием указателями:
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
53
54
55
56
57
58
59
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n, m, k, i, j;
    
    cout << "Enter size of matrix:" << endl;
    cout << "n = ";
    cin >> n;
    cout << "m = ";
    cin >> m;
 
    int a, b;
    cout << "Enter limits:" << endl;
    cout << "a = "; cin >> a;
    cout << "b = "; cin >> b;
    if (a > b) 
        swap(a, b);
 
    int** c = new int* [n];
 
    for (i = 0; i < n; i++)
    {
        c[i] = new int[m];
        for (j = 0; j < m; j++)
        {
            *(c[i] + j) = rand() % 100;
            cout << setw(3) << *(c[i] + j);
        }
        cout << endl;
    }
 
    for (i = 0; i < n; i++)
    {
        k = 0;
        cout << "Row " << i + 1 << ": ";
        for (j = 0; j < m; j++)
            if (*(c[i] + j) < a || *(c[i] + j) > b)
            {
                k = 1;
                cout << *(c[i] + j) << endl;
                break;
            }
        if (k == 0)
            cout << "Not found !" << endl;
    }
 
    for (i = 0; i < n; i++)
        delete[] c[i];
    delete[] c;
 
    system("pause");
    return 0;
}
И внимательно, что объявление типа double из него для a и b не рационально по-моему ! Должно быть int.
1
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
20.05.2021, 14:24  [ТС]
Volga, почему ретурн 0 выдает ошибку?

Добавлено через 4 минуты
Извините, забыл поставить ;

Добавлено через 2 минуты
Volga, а как все вместе сделать и с тем и с тем ?

Добавлено через 11 минут
А как сделать с *(c + i * n + j)?

Добавлено через 9 минут
Volga_, в чем проблема ? Плиз срочно помогите

Добавлено через 1 минуту
Volga_, здесь ошибка if (*(c + i * m + j)<a || *(c +i * m + j) > b)
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
20.05.2021, 14:27
Лучший ответ Сообщение было отмечено goodrogrammer как решение

Решение

Цитата Сообщение от goodrogrammer Посмотреть сообщение
А как сделать с *(c + i * n + j)?
Вам нужен двумерный массив ! Попробуйте:
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
53
54
55
56
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n, m, k, i, j;
 
    cout << "Enter size of matrix:" << endl;
    cout << "n = ";
    cin >> n;
    cout << "m = ";
    cin >> m;
 
    int a, b;
    cout << "Enter limits:" << endl;
    cout << "a = "; cin >> a;
    cout << "b = "; cin >> b;
    if (a > b)
        swap(a, b);
 
    int* c = new int[n * m];
 
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
        {
            *(c + m * i + j) = rand() % 100;
            cout << setw(3) << *(c + m * i + j);
        }
        cout << endl;
    }
 
    for (i = 0; i < n; i++)
    {
        k = 0;
        cout << "Row " << i + 1 << ": ";
        for (j = 0; j < m; j++)
            if (*(c + m * i + j) < a || *(c + m * i + j) > b)
            {
                k = 1;
                cout << *(c + m * i + j) << endl;
                break;
            }
        if (k == 0)
            cout << "Not found !" << endl;
    }
 
    delete[] c;
 
    system("pause");
    return 0;
}
1
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
20.05.2021, 14:58  [ТС]
Volga_, Спасибо огромное Вам за быструю помощь и быстрые ответы
1
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
20.05.2021, 15:04
Цитата Сообщение от goodrogrammer Посмотреть сообщение
за быструю помощь и быстрые ответы
Не за что. Успехов !
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.05.2021, 15:04
Помогаю со студенческими работами здесь

Найти в каждой четной строке матрицы элемент с максимальным значением
Задать с клавиатуры целочисленную матрицу NxM. Найти в каждой четной строке матрицы элемент с максимальным значением. Вывести на экран...

Найти в каждой строке матрицы элемент с максимальным и минимальным значением
Дана матрица F(4,4). Найти в каждой строке матрицы элемент с максимальным и минимальным значением. Поставьте максимальный элемент на первое...

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

В каждой строке матрицы найти элемент с минимальным значением и его номер столбца
задан 2-умерный массив размерности М*N . В каждой строке найти элемент с минимальным значением и его номер столбца. Значения элементов...

В каждой строке матрицы найти элемент с наименьшим значением, затем среди этих чисел найти наибольшее
Дана матрица размера M*N, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru