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

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

11.05.2016, 17:39. Показов 1232. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В одномерном массиве x={x(i)}, где i=0,1,...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
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<iomanip>
using namespace std;
//Прототип функции для вводавектора в оперативную память
void inputv(int A[], int n);
//Прототип функции для вывода вектора на монитор
void outputv(int A[], int n);
//Главная функция
int main()
{//Руссификация
    setlocale(LC_ALL, "Russian");
    //Объявление переменных
    const int N = 10;
    int A[N];
    int sum = 0;
    int mul = 1;
    //Вычисления
    for (int i = 0; i < N; i++)
    {
        cout << "Введите массив: " << endl;
        cin >> A[i];
        if (A[i] <= 0)
            sum += A[i];
        else
            mul *= A[i];
    }
    int tmp = A[0];
    A[0] = A[N - 1];
    A[N - 1] = tmp;
    return 0;
}
//функция для ввода вектора в озу
void inputv(int A[], int n)
{
    //объявление переменных
    int i;
    //ввод
    for (i = 0; i < n; i++)
        cin >> A[i];
}
//функция для вывода вектора на монитор
void outputv(int A[], int n)
{
    //объявление переменных
    int i;
    //вывод
    for (i = 0; i < n; i++)
    {
        if (i % 5 == 0) cout << endl;
        cout << setw(10) << A[i];
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2016, 17:39
Ответы с готовыми решениями:

Найти количество неотрицательных и произведение положительных элементов массива
Помогите написать код) Найти количество неотрицательных и произведение положительных элементов...

Найти сумму неотрицательных и произведение положительных элементов массива
Мужики подскажите как написать пожалуйста!!! Составить программу, использующую для хранения...

Сортировка по возрастанию, сумма положительных и произведение отрицательных элементов массива
#include &lt;stdio.h&gt; #include &lt;iostream.h&gt; main() { static float a; int...

В последовательности чисел сравнить, что больше сумма положительных или произведение отрицательных
Кто знает как модно решить данную задачу на С++ при помощи цикла &quot;do while&quot;? В последовательности...

8
30 / 30 / 23
Регистрация: 29.04.2011
Сообщений: 153
11.05.2016, 18:04 2
А зачем функции если они никак не используются в int main()? В принципе у вас уже все сделано. Просто добавляем вывод sum, mul, и массива после замены первого и последнего элементов.
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
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    const int N = 10;
    int A[N];
    int sum = 0;
    int mul = 1;
    //Вычисления
    for (int i = 0; i < N; i++)
    {
        cout << "Введите массив: " << endl;
        cin >> A[i];
        if (A[i] <= 0)
            sum += A[i];
        else
            mul *= A[i];
    }
    cout << "Сумма отрицательных элементов массива: " << sum << endl;
    cout << "Произведение положительных элементов массива: " << mul << endl;
 
    int tmp = A[0];
    A[0] = A[N - 1];
    A[N - 1] = tmp;
    cout << "выводим массив:\n";
    for (int i = 0; i < N; i++)
    {
        cout << "A[" << i << "]: " << A[i] << endl;
    }
    
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 21.04.2016
Сообщений: 89
11.05.2016, 18:06  [ТС] 3
Njkzy, спасибо,можете сделать с void main() функцию?
0
30 / 30 / 23
Регистрация: 29.04.2011
Сообщений: 153
11.05.2016, 18:15 4
joninkill, проще простого меняем int main() на void main() и удаляем return 0 в 33 строке
А если есть серьезная необходимость переноса в функцию, то наверное это будет выглядеть так:
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
#include <iostream>
using namespace std;
void mass()
{
    const int N = 10;
    int A[N];
    int sum = 0;
    int mul = 1;
    //Вычисления
    for (int i = 0; i < N; i++)
    {
        cout << "Введите массив: " << endl;
        cin >> A[i];
        if (A[i] <= 0)
            sum += A[i];
        else
            mul *= A[i];
    }
    cout << "Сумма отрицательных элементов массива: " << sum << endl;
    cout << "Произведение положительных элементов массива: " << mul << endl;
 
    int tmp = A[0];
    A[0] = A[N - 1];
    A[N - 1] = tmp;
    cout << "выводим массив:\n";
    for (int i = 0; i < N; i++)
    {
        cout << "A[" << i << "]: " << A[i] << endl;
    }
}
 
int main()
{
    setlocale(LC_ALL, "Russian");   
    mass();
 
    system("pause");
    return 0;
}
Ну а если ещё серьезней то стоит переписывать всю задачу слово в слово, что бы путаниц и недопонимание не возникало.
0
0 / 0 / 0
Регистрация: 21.04.2016
Сообщений: 89
11.05.2016, 18:20  [ТС] 5
Njkzy, функция как-то по-другому должна выглядеть)
вот пример функции
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
#include<iostream>
#include<iomanip>
using namespace std;
void inputv(double z[], int n);
void outputv(double z[], int n);
void maxi(double z[], int n, double& p, int& k);
void mini(double z[], int n, double& q, int& c);
void miniso(double z[], int n, double& l, int& j);
void maxso(double z[], int n, double& w, int& e);
 
void main()
{
    setlocale(LC_ALL, "Russian");
    double z[10], mz, mmz, mso, mxso;
    int nz, nmz, nmzso, nmxzso;
    cout << "\n Ввести вектор состоящий из 10 элементов содержащий отрицательные значения \n";
    inputv(z, 10);
    cout << "\n ***Вектор z*** \n";
    outputv(z, 10);
    maxi(z, 10, mz, nz);
    mini(z, 10, mmz, nmz);
    miniso(z, 10, mso, nmzso);
    maxso(z, 10, mxso, nmxzso);
    cout << "\n Max координата вектора mz = " << mz;
    cout << "\n Её индекс nz = " << nz;
    cout << "\n Min координата вектора mmz = " << mmz;
    cout << "\n Её индекс nmz = " << nmz;
    cout << "\n Min координата вектора среди отрицательных mso = " << mso;
    cout << "\n Её индекс nmzso = " << nmzso;
    cout << "\n Max координата вектора среди отрицательных mxso = " << mxso;
    cout << "\n Её индекс nmxzso = " << nmxzso;
    cout << endl;
 
}
//функция для ввода вектора в озу
void inputv(double z[], int n)
{
    //объявление переменных
    int i;
    //ввод
    for (i = 0; i < n; i++)
        cin >> z[i];
}
//функция для вывода вектора на монитор
void outputv(double z[], int n)
{
    //объявление переменных
    int i;
    //вывод
    for (i = 0; i < n; i++)
    {
        if (i % 5 == 0) cout << endl;
        cout << setw(10) << z[i];
    }
}
//фукнция максимального элемента и его индекса
void maxi(double z[], int n, double& p, int& k)
{
    int i;
    p = z[0]; k = 0;
    for (i = 1; i < n; i++)
    {
        if (z[i]>p)
        {
            p = z[i];
            k = i;
        }
    }
}
 
//фукнция минимального элемента и его индекса
void mini(double z[], int n, double& q, int& c)
{
    int i;
    q = z[0]; c = 0;
    for (i = 1; i < n; i++)
    {
        if (z[i]<q)
        {
            q = z[i];
            c = i;
        }
    }
}
//фукнция максимального элемента и его индекса cреди отрицательных
void maxso(double z[], int n, double& w, int& e)
{
    int i;
    w = z[0]; e = 0;
    for (i = 1; i < n; i++)
    {
        if (z[i]>w && z[i]<0)
        {
            w = z[i];
            e = i;
        }
    }
}
//фукнция минимального элемента и его индекса cреди отрицательных
void miniso(double z[], int n, double& l, int& j)
{
    int i;
    l = z[0]; j = 0;
    for (i = 1; i < n; i++)
    {
        if (z[i]<l && z[i]<0)
        {
            l = z[i];
            j = i;
        }
    }
}
0
30 / 30 / 23
Регистрация: 29.04.2011
Сообщений: 153
11.05.2016, 18:29 6
Цитата Сообщение от joninkill Посмотреть сообщение
функция как-то по-другому должна выглядеть)
А можно всю задачу целиком посмотреть? А то не совсем понятно что от нас требуется.
0
0 / 0 / 0
Регистрация: 21.04.2016
Сообщений: 89
11.05.2016, 18:35  [ТС] 7
Njkzy,
Задача
В одномерном массиве x={x(i)}, где i=0,1,...10 нужно найти сумму не положительных,произведение неотрицательных элементов и поменять местами первый и последний элементы.
Для решении задачи нужно написать функции:
Для ввода вектора в оперативную память;
Для вывода вектора на монитор;
Для поиска суммы не положительных,произведения неотрицательных элементов и перестановки местами первого и последнего элемента.
0
30 / 30 / 23
Регистрация: 29.04.2011
Сообщений: 153
11.05.2016, 19:00 8
Лучший ответ Сообщение было отмечено joninkill как решение

Решение

joninkill,
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
#include<iostream>
#include<iomanip>
using namespace std;
void inputv(double z[], int n);
void outputv(double z[], int n);
void suma(double z[], int n, double& p, int& k);
void zamena(double z[], int n, double& q, int& c);
 
 
void main()
{
    setlocale(LC_ALL, "Russian");
    double z[10], mz, mmz, mso, mxso;
    int nz, nmz, nmzso, nmxzso;
    cout << "Ввести вектор состоящий из 10 элементов содержащий отрицательные значения \n";
    inputv(z, 10);
    cout << "\n ***Вектор z*** \n";
    outputv(z, 10);
    suma(z, 10, mz, nz);
    zamena(z, 10, mmz, nmz);    
 
    system("pause");
 
}
//функция для ввода вектора в озу
void inputv(double z[], int n)
{
    //объявление переменных
    int i;
    //ввод
    for (i = 0; i < n; i++)
        cin >> z[i];
}
//функция для вывода вектора на монитор
void outputv(double z[], int n)
{
    //объявление переменных
    int i;
    //вывод
    for (i = 0; i < n; i++)
    {
        cout << z[i] << endl;
    }
}
//фукнция суммы отрицательных элементов вектора и произведения положительных
void suma(double z[], int n, double& p, int& k)
{
    double sum = 0;
    double mul = 1;
    for (int i = 0; i < n; i++)
    {
        if (z[i] < 0)
            sum += z[i];
        else
            mul *= z[i];
    }
    cout << "Сумма отрицательных элементов массива: " << sum << endl; 
    cout << "Произведение положительных элементов массива: " << mul << endl;
}
 
//фукнция замены первого и последнего элемента массива
void zamena(double z[], int n, double& q, int& c)
{
    double buf = z[0];
    z[0] = z[n - 1];
    z[n - 1] = buf;
    cout << "Выводим массив:\n";
    for (int i = 0; i < n; i++)
        cout << "z[" << i << "]: " << z[i] << endl;
}
1
0 / 0 / 0
Регистрация: 21.04.2016
Сообщений: 89
11.05.2016, 19:03  [ТС] 9
Njkzy, спасибо)
0
11.05.2016, 19:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2016, 19:03
Помогаю со студенческими работами здесь

Составить программу для вычисления по формуле X - сумма всех элементов массива; Y - произведение положительных
Составить программу для вычисления по формуле X - сумма всех элементов массива; Y -...

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

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

Найти сумму не положительных, произведение неотрицательных элементов, поменять местами первый и последний элементы
Здравствуйте, нужно перевести с Паскаля на Бейсик. Сама задача: В одномерном массиве х(10) найти...

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

Сумма положительных и произведение отрицательных элементов одномерного массива
Надо составить программу которая определяет сумму положительных и произведение отрицательных...


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

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