0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 7
1

Найти произведение и сумму элементов массива, расположенных между первым и последним отрицательными элементами

18.03.2019, 18:40. Показов 706. Ответов 5
Метки нет (Все метки)

Привет, нужно найти произведение и сумму элементов массива, расположенных между первым и последним отрицательными элементами. Сделать через функции пользователя. Подскажите где ошибка\ошибки пожалуйста

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include "pch.h"
#include <iostream>
using namespace std;
 
int func1(int, int **);
int func2(int, int **);
int main()
{
    int n, **a, sum, pro;
    cout << "vvedite razmer: ";
    cin >> n;
    a = new int *[n];
    for (int i = 0; i < n; i++)
        a[i] = new int[n];
    
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << " vvedite element: ";
            cin >> a[i][j];
        }
    }
    sum = func1(n, a);
    pro = func2(n, a);
    cout << "summa: "; sum; "proizv: "; pro;
 
    for (int i = 0; i < n; i++)
        delete[]a[i];
    delete[]a;
    a = NULL;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
int func1(int n, int **a)
{
    int f1 = 0, f2 = 0, m1 = 0, m2 = 0, sum = 0, pro = 0;
    int chek1 = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (a[i][j] < 0)
            {
                f1 = i;
                f2 = j;
                chek1 = 1;
                break;
            }
        }
        if (chek1=1)
            break;
    }
    chek1 = 0;
    for (int i = n - 1; i <= 0; i--)
    {
        for (int j = n - 1; j <= 0; j--)
        {
            if (a[i][j] < 0)
            {
                m1 = i;
                m2 = j;
                chek1 = 1;
            }   break;
        }
        if (chek1=1) break;
    }
    for (int i = f1; i <= m1; i++)
    {
        if (i = f1)
        {
            for (int j = f2; j < n; j++)
            {
                sum += a[i][j];
            }
        }
        if (i != f1 && i != m1) 
        {
            for (int j = 0; j < n; j++)
            {
                sum += a[i][j];
            }
        }
        if (i = m1)
        {
            for (int j = 0; j <= m2; j++)
            {
                sum += a[i][j];
            }
        }
    }
    return sum;
}   
///////////////////////////////////////////////////////////////////////////////////////////////
int func2(int n, int **a)
{
    int f1 = 0, f2 = 0, m1 = 0, m2 = 0, sum = 0, pro = 0;
    int chek1 = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (a[i][j] < 0)
            {
                f1 = i;
                f2 = j;
                chek1 = 1;
                break;
            }
        }
        if (chek1 = 1)
            break;
    }
    chek1 = 0;
    for (int i = n - 1; i <= 0; i--)
    {
        for (int j = n - 1; j <= 0; j--)
        {
            if (a[i][j] < 0)
            {
                m1 = i;
                m2 = j;
                chek1 = 1;
            }   break;
        }
        if (chek1 = 1) break;
    }
    for (int i = f1; i <= m1; i++)
    {
        if (i = f1)
        {
            for (int j = f2; j < n; j++)
            {
                sum *= a[i][j];
            }
        }
        if (i != f1 && i != m1)
        {
            for (int j = 0; j < n; j++)
            {
                sum *= a[i][j];
            }
        }
        if (i = m1)
        {
            for (int j = 0; j <= m2; j++)
            {
                sum *= a[i][j];
            }
        }
    }
    return sum;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2019, 18:40
Ответы с готовыми решениями:

Найти произведение и сумму элементов массива, расположенных между первым и последним отрицательными элементами
Объясните пожалуйста почему функции выдают нули :) #include &quot;pch.h&quot; #include &lt;iostream&gt;...

Найти произведение элементов массива расположенных между первым и последним отрицательными элементами
Задан массив X(n) найти : -сумму нечетных элементов массива; -произведение элементов массива...

Найти сумму элементов расположенных между первым и последним отрицательными элементами массива
Дан целочисленный масив размера N.Найти суму элементов расположенных между первым и последним...

Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами
4 В одномерном массиве, состоящем из 20 вещественных элементов, вычислить: сумму элементов...

5
593 / 430 / 135
Регистрация: 22.11.2017
Сообщений: 1,213
18.03.2019, 18:47 2
sybercat, привет!
Если тебе подойдёт, могу на vector написать эту программу.
Твой код смотреть? Он какой - то здоровый.
0
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 7
18.03.2019, 18:56  [ТС] 3
Спасибо!) Но мне нужно без них написать)
0
35 / 25 / 10
Регистрация: 08.02.2019
Сообщений: 158
18.03.2019, 19:20 4
Ошибки
1) Возьму к примеру этот фрагмент кода:
C++
1
if (i = f1)
Вместо знака равенства ==, используется присваивание =, таких ошибок у вас несколько
2) Вот еще фрагмент вашего кода
C++
1
cout << "summa: "; sum; "proizv: "; pro;
Выводит только summa:, а я так думаю подразумевалось все, можно так написать:
C++
1
2
cout << "summa: " << sum << endl;
cout << "proizv: " << pro << endl;
3) Не увидел проверки на отрицательные числа в функциях(для диапазона), функции выдают нули
Дальше не смотрел пока

Добавлено через 14 секунд
Ошибки
1) Возьму к примеру этот фрагмент кода:
C++
1
if (i = f1)
Вместо знака равенства ==, используется присваивание =, таких ошибок у вас несколько
2) Вот еще фрагмент вашего кода
C++
1
cout << "summa: "; sum; "proizv: "; pro;
Выводит только summa:, а я так думаю подразумевалось все, можно так написать:
C++
1
2
cout << "summa: " << sum << endl;
cout << "proizv: " << pro << endl;
3) Не увидел проверки на отрицательные числа в функциях(для диапазона), функции выдают нули
Дальше не смотрел пока
2
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 7
18.03.2019, 19:35  [ТС] 5
Helpdes, Спасибо большое!) Глупые ошибки
вот проверка на отрицательные числа, по задумке я нахожу позиции этих элементов
Найти произведение и сумму элементов массива, расположенных между первым и последним отрицательными элементами
0
0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 7
18.03.2019, 21:30  [ТС] 6
Можете объяснить почему нули выдаются
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2019, 21:30
Помогаю со студенческими работами здесь

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

Вычислить произведение элементов массива, расположенных между первым и последним отрицательными элементами
В одномерном массиве, состоящем из n целых элементов, вычислить: Б) произведение элементов...

Вычислить произведение элементов массива расположенных между первым и последним отрицательными элементами
произведение эле-ментов массива, расположенных между первым и последним отрицатель-ными элементами.

Сумму элементов массива, расположенных между первым и последним отрицательными элементами
Задание: Нужно найти сумму элементов массива, расположенных между первым и последним...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru