Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Basill
40 / 40 / 13
Регистрация: 16.02.2013
Сообщений: 197
#1

В двумерном массиве определить первый отрицательный элемент на интервале [a,b] - C++

24.03.2013, 12:07. Просмотров 1824. Ответов 32
Метки нет (Все метки)

Подскажите пожалуйста что мне нужно про писать в 5 строке чтобы определить первый отрицательный элемент массива
не используя break

C++
1
2
3
4
5
6
7
for (i=1; i<3; i++)
    for (j=1; j<3; j++)
    
    if(a<= M[i][j] && M[i][j]<=b)
       
       
    cout <<"Первый отрицательный элемент массива в интервале [a,b] ="<<z<<endl;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 12:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В двумерном массиве определить первый отрицательный элемент на интервале [a,b] (C++):

Найти максимальный элемент и заменить им первый элемент строки в двумерном массиве - C++
В матрице X(4,5) в каждой строке найти максимальный элемент и заменить им первый элемент строки. Предварительно первый элемент строки...

Найти первый отрицательный элемент и его индекс в массиве - C++
В массиве из 15 чисел найти первый отрицательный элемент и его индекс в массиве. (Пожалуйста помогите чайнику)

Переставить в 1-м массиве первый отрицательный и последний положительный элемент местами - C++
Переставить в 1-м массиве первый отрицательный и последний положительный элемент местами!

Заменить первый минимальный четный элемент в двумерном массиве - C++
Задание 13. Заменить первый минимальный четный элемент в заштрихованной области, включая границы, на первый максимальный нечетный элемент...

В произвольно заданном одномерном массиве заменить первый отрицательный элемент нулем - C++
В произвольно заданном одномерном массиве заменить первый отрицательный элемент нулем QtCreator, помогите сделать

В двумерном массиве удалить все столбцы в которых первый элемент больше последнего - C++
В двумерном массиве удалить все столбцы в которых первый элемент больше последнего.

32
Basill
40 / 40 / 13
Регистрация: 16.02.2013
Сообщений: 197
24.03.2013, 13:27  [ТС] #16
ReasonX7, что то в условие не то, щас проверял разные комбинации и он выдовал 1 отрицат. во всей матрице, и не учитывал интервал [a,b]
0
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
24.03.2013, 13:37 #17
Basill, так нужно было вывести индексы ВСЕХ отрицательных элементов?

Добавлено через 1 минуту
Ааа, я понял.
0
Basill
40 / 40 / 13
Регистрация: 16.02.2013
Сообщений: 197
24.03.2013, 13:37  [ТС] #18
ReasonX7,
Вот полное задание
В двумерном массиве определить номер строки и номер столбца, на пересечении которых находятся требуемые элементы массива:
1) Последний отрицательный элемент;
3) Первый отрицательный попавший в интервал [a,b]
0
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
24.03.2013, 13:41 #19
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
#include <iostream>
 
using namespace std;
 
void main()
{
    const int N = 3;
    int matrix[N][N] = { 3, -4, 5,
                         5, 6, -3,
                         10, 9, 4 };
    int a, b;
    cout << "a >> ";
    cin >> a;
    cout << "b >> ";
    cin >> b;
 
    int first_neg_el = 1;
    int i_row = -1, i_column;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            if (matrix[i][j] >= a && matrix[i][j] <= b && matrix[i][j] < 0 && first_neg_el >= 0)
            {
                first_neg_el = matrix[i][j];
            }
            if (i_row == -1 && matrix[i][j] < 0)
            {
                i_row = i;
                i_column = j;
            }
        }
    }
 
    if (first_neg_el < 0)
    {
        cout << "First negative element = " << first_neg_el << " [" << i_row << ", " << i_column << ']' << '\n';
    }
    else 
        cout << "No negative element was found\n";
 
    system("pause");
}
Добавлено через 2 минуты
Цитата Сообщение от Basill Посмотреть сообщение
Это была первая часть задания. вторая заключается в том, что нужно вывести на экран номер строки и номер столбца первого отрицательного элемента всей этой матрицы, без интервала.
Так первого или последнего элемента?
0
Basill
40 / 40 / 13
Регистрация: 16.02.2013
Сообщений: 197
24.03.2013, 13:42  [ТС] #20
ReasonX7, В интервале нужно найти первый отрицательный. А во всей матрице последний и все это вывести на экран
0
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
24.03.2013, 13:45 #21
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
#include <iostream>
 
using namespace std;
 
void main()
{
    const int N = 3;
    int matrix[N][N] = { 3, -4, 5,
                         5, 6, -3,
                         10, 9, 4 };
    int a, b;
    cout << "a >> ";
    cin >> a;
    cout << "b >> ";
    cin >> b;
 
    int first_neg_el = 1;
    int i_row = -1, i_column;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            if (matrix[i][j] >= a && matrix[i][j] <= b && matrix[i][j] < 0 && first_neg_el >= 0)
            {
                first_neg_el = matrix[i][j];
            }
        }
    }
 
    for (int i = N - 1; i >= 0; i--)
    {
        for (int j = N - 1; j >= 0; j--)
        {
            if (i_row == -1 && matrix[i][j] < 0)
            {
                i_row = i;
                i_column = j;
            }
        }
    }
 
    if (first_neg_el < 0)
    {
        cout << "First negative element = " << first_neg_el << '\n';
        cout << "Last negative element coordinates: " << " [" << i_row << ", " << i_column << "]\n";
    }
    else 
        cout << "No negative element was found\n";
 
    system("pause");
}
0
Basill
40 / 40 / 13
Регистрация: 16.02.2013
Сообщений: 197
24.03.2013, 13:57  [ТС] #22
ReasonX7, не так маленько. Нужно последний отрицательный во всей матрице.
И первый отрицательный на интервале

Добавлено через 1 минуту
ReasonX7, Кстате я твой код вставляю у меня выдает что отрицательных нету.
0
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
24.03.2013, 14:03 #23
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>
 
using namespace std;
 
void main()
{
    const int N = 3;
    int matrix[N][N] = { 3, -4, 5,
                         5, 6, -3,
                         10, 9, 4 };
    int a, b;
    cout << "a >> ";
    cin >> a;
    cout << "b >> ";
    cin >> b;
 
    int first_neg_el = 1;
    int last_neg_el = 1;
    int i_row = -1, i_column;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            if (matrix[i][j] >= a && matrix[i][j] <= b && matrix[i][j] < 0 && first_neg_el >= 0)
            {
                first_neg_el = matrix[i][j];
            }
        }
    }
 
    for (int i = N - 1; i >= 0; i--)
    {
        for (int j = N - 1; j >= 0; j--)
        {
            if (last_neg_el >= 0)
            {
                last_neg_el = matrix[i][j];
            }
            if (i_row == -1 && matrix[i][j] < 0)
            {
                i_row = i;
                i_column = j;
            }
        }
    }
 
    if (first_neg_el < 0)
    {
        cout << "First negative element = " << first_neg_el << '\n';
        cout << "Last negative element: " << last_neg_el << " [" << i_row << ", " << i_column << "]\n";
    }
    else 
        cout << "No negative element was found\n";
 
    system("pause");
}
1
Миниатюры
В двумерном массиве определить первый отрицательный элемент на интервале [a,b]  
Basill
40 / 40 / 13
Регистрация: 16.02.2013
Сообщений: 197
24.03.2013, 15:34  [ТС] #24
ReasonX7, почему ты брал интервал от -4 до 0. Ведь в моем случае это интервал среди введенных элементов. Т.е. например а=2(второй элемент массива) b=8(это 8 элемент массива)
0
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
24.03.2013, 17:26 #25
Basill, тогда в чем смысл этого условия?
C++
1
if(a<= M[i][j] && M[i][j]<=b)
Если бы ты сразу сравнивал индексы, было бы понятно, что имеется ввиду от такого-то эл. до такого-то. А так я решил, что имеется ввиду поиск числа, которое входит в такой-то диапазон.
0
Basill
40 / 40 / 13
Регистрация: 16.02.2013
Сообщений: 197
24.03.2013, 18:15  [ТС] #26
ReasonX7, И как мне сделать то? что вписать?
0
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
24.03.2013, 18:25 #27
Поменять
C++
1
matrix[i][j] >= a && matrix[i][j] <= b
на
C++
1
i + j >= a && i + j <= b
Добавлено через 44 секунды
Учти, нумерация начинается с нуля.
0
Basill
40 / 40 / 13
Регистрация: 16.02.2013
Сообщений: 197
24.03.2013, 18:57  [ТС] #28
ReasonX7, Не правильно работает.
Погляди код может я что то не так написал.
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
#include <conio.h>
#include <clocale> 
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Russian");
int j,i,a,b,M[3][3],z;
//вводим массив
cout<<"Введите элементы массива: \n";
    for (i=0; i<3; i++)
    for (j=0; j<3; j++)
    {
        cout <<"mas["<<(i)<<"]";
        cout <<"["<<(j)<<"]->";
        cin >> M[i][j];
    }
 
    cout << "a = ";
    cin >> a;
    cout << "b = ";
    cin >> b;
 
    // вывести массив построчно
for (int i = 0; i < 3; i++)
{
for (j=0; j < 3; j++)
{
cout << M [i] [j] << " ";
}
cout << endl;
}
    //Первый отрицательный элемент в интервале
    int Z = 0;
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
           if (i + j >= a && i + j <= b && M[i][j] < 0 && Z >= 0)
           {
                Z = M[i][j];
           }
        }
    }
   //Последний отрицательный
     int X = 1;
     int P , G;
    for (int i = 3 - 1; i >= 0; i--)
    {
        for (int j = 3 - 1; j >= 0; j--)
        {
            if (X >= 0)
            {
                X = M[i][j];
                P = i; 
                G = j; 
            }
        }
    }
     if (X < 0)
     cout << "Последний отрицательный элемент: " << X << " [" << P << ", " << G << "]\n";
     else 
        cout << "Отрицательных элементов нет!!!! \n";  
 
     if (Z < 0)
     cout << "Первый отрицательный элемент в интервале [a,b] = " << Z << '\n';
          
      else 
        cout << "Отрицательных элементов на заданном интервале нет!!! \n";
 
    system("pause");
}
0
ReasonX7
47 / 46 / 2
Регистрация: 11.12.2011
Сообщений: 147
24.03.2013, 19:02 #29
Basill, в чем именно ошибка?
0
Миниатюры
В двумерном массиве определить первый отрицательный элемент на интервале [a,b]  
Basill
40 / 40 / 13
Регистрация: 16.02.2013
Сообщений: 197
24.03.2013, 19:10  [ТС] #30
Цитата Сообщение от ReasonX7 Посмотреть сообщение
Basill, в чем именно ошибка?
а ты введи те же самые числа массива и поставь интервал с 5 до 9 например
0
24.03.2013, 19:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2013, 19:10
Привет! Вот еще темы с ответами:

В двумерном массиве L (M, N) первый элемент поменять с последним и найти сумму отрицательных элементов - C++
Здравствуйте. помогите с задачей. В двумерном массиве L (M, N) первый элемент поменять с последним и найти сумму отрицательных...

Определить наибольший элемент в двумерном массиве - C++
#include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; void main() { clrscr();...

Определить последний отрицательный максимальный элемент и его позицию в массиве - C++
мальчики помогите пожалуйста решить задачи 1)Для заданного двумерного массива из n строк и m столбцов: a.)Определить последний...

Для каждого положительного элемента определить, есть ли в массиве отрицательный элемент с противоположным з - C++
Позязя. Нужна помощь с решением C: Полное условие. Для каждого положительного элемента определить, есть ли в массиве отрицательный...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.