Форум программистов, компьютерный форум CyberForum.ru

Произведение элементов массива, расположенных между максимальным и минимальным элементами - C++

Восстановить пароль Регистрация
 
Flashik66
15 / 7 / 7
Регистрация: 05.11.2012
Сообщений: 119
08.11.2012, 02:33     Произведение элементов массива, расположенных между максимальным и минимальным элементами #1
Добрый вечер. Помогите разобраться с массивами. Поиск изал но толком ничего понятного для себя не нашел. Делать программу пытался сам но почему-то мы не можем все подружиться.. Собственно прошу помощи.

Задание 1



В одномерном массиве {3.24, -7.16, 2.28, -0.16, -3.22, 7.14, 2.88, -3.20, 0.99, -4.15} вычислить:

1) сумму отрицательных элементов массива;

2) произведение элементов массива, расположенных между максимальным и минимальным элементами;

3) упорядочить элементы массива по возрастанию



Задание 2



Дана целочисленная прямоугольная матрица:

m = {{ 16, 78, 0, 6, -29, 19, -52, 65, -88, 51},

{ -79, -22, 32, -25, -62, -69, -2, -59, -75, 89},

{ -87, 95, -22, 85, -49, -75, 76, 73, -59, -52},

{ 30, 49, -28, -48, 0, 57, -6, -85, 0, -18},

{ -99, -21, -95, 64, 22, -2, 69, -84, -1, -71},

{ -25, 47, 72, 43, 15, -44, 44, 61, 4, 74},

{ 88, -61, 0, -64, -83, 97, 0, 90, 15, 8},

{ -54, 99, 73, 35, -67, -87, 85, -93, -70, 10},

{ 98, 58, -10, -29, 95, 62, 77, 89, 36, -32},

{ 78, 60, -79, -18, 30, -13, -34, -92, 1, -38}}

Определить:

1) количество строк, не содержащих ни одного нулевого элемента;

2) максимальное из чисел, встречающихся в заданной матрице более одного раза.


Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2012, 02:33     Произведение элементов массива, расположенных между максимальным и минимальным элементами
Посмотрите здесь:

Произведение элементов массива, расположенных между максимальным и минимальным элементами C++
Произведение элементов массива, расположенных между максимальным и минимальным элементами C++
C++ произведение элементов массива, расположенных между максимальным и минимальным элементами.
C++ Произведение элементов массива, расположенных между максимальным и минимальным элементами
C++ Вычислить произведение элементов массива, расположенных между максимальным и минимальным элементами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
08.11.2012, 11:12     Произведение элементов массива, расположенных между максимальным и минимальным элементами #2
Задание 1



В одномерном массиве {3.24, -7.16, 2.28, -0.16, -3.22, 7.14, 2.88, -3.20, 0.99, -4.15} вычислить:

1) сумму отрицательных элементов массива;

2) произведение элементов массива, расположенных между максимальным и минимальным элементами;

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 <stdio.h>
#include <conio.h>
 
#define N 10
 
template<typename T> void swap(T& n1, T& n2)
 { T _tn = n1; n1 = n2; n2 = _tn; }
 
int main()
{
    double A[N] = {3.24, -7.16, 2.28, -0.16, -3.22, 7.14, 2.88, -3.20, 0.99, -4.15};
 
    for (int x = 0; x < N; x++)
        printf("%lf ",A[x]);
    printf("\n\n");
 
    int min = 0, max = 0, count = 0;
    for (int i = 0; i < N; i++)
    {
        if (A[i] < 0) count++;
        min = (A[i] < A[min]) ? i : min;
        max = (A[i] > A[max]) ? i : max;
    }
 
    printf("min A[%d] = %lf max A[%d] = %lf\n\n",min,A[min],max,A[max]);
    
    double mul = 1.00;
    for (int t = min+1; t <= max-1; t++)
    {
        printf("%lf ",A[t]);
        mul*=A[t];
    }
 
    printf("\tmul = %lf\n\n",mul);
 
    for (int q = 0; q < N; q++)
    {
        int min = q;
        for (int s = q+1; s < N; s++)
            if (A[s] < A[min]) min = s;
 
        swap<double>(A[q],A[min]);
    }
 
    for (int u = 0; u < N; u++)
        printf("%lf ",A[u]);
    printf("\n");
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/947084...4b470d6459528d
Миниатюры
Произведение элементов массива, расположенных между максимальным и минимальным элементами  
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
08.11.2012, 11:24     Произведение элементов массива, расположенных между максимальным и минимальным элементами #3
Задание 2



Дана целочисленная прямоугольная матрица:

m = {{ 16, 78, 0, 6, -29, 19, -52, 65, -88, 51},

{ -79, -22, 32, -25, -62, -69, -2, -59, -75, 89},

{ -87, 95, -22, 85, -49, -75, 76, 73, -59, -52},

{ 30, 49, -28, -48, 0, 57, -6, -85, 0, -18},

{ -99, -21, -95, 64, 22, -2, 69, -84, -1, -71},

{ -25, 47, 72, 43, 15, -44, 44, 61, 4, 74},

{ 88, -61, 0, -64, -83, 97, 0, 90, 15, 8},

{ -54, 99, 73, 35, -67, -87, 85, -93, -70, 10},

{ 98, 58, -10, -29, 95, 62, 77, 89, 36, -32},

{ 78, 60, -79, -18, 30, -13, -34, -92, 1, -38}}

Определить:

1) количество строк, не содержащих ни одного нулевого элемента;

2) максимальное из чисел, встречающихся в заданной матрице более одного раза.


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 <stdio.h>
#include <conio.h>
 
#define N 10
 
int main()
{
    int M[N][N] = {{ 16, 78, 0, 6, -29, 19, -52, 65, -88, 51},
                   { -79, -22, 32, -25, -62, -69, -2, -59, -75, 89},
                   { -87, 95, -22, 85, -49, -75, 76, 73, -59, -52},
                   { 30, 49, -28, -48, 0, 57, -6, -85, 0, -18},
                   { -99, -21, -95, 64, 22, -2, 69, -84, -1, -71},
                   { -25, 47, 72, 43, 15, -44, 44, 61, 4, 74},
                   { 88, -61, 0, -64, -83, 97, 0, 90, 15, 8},
                   { -54, 99, 73, 35, -67, -87, 85, -93, -70, 10},
                   { 98, 58, -10, -29, 95, 62, 77, 89, 36, -32},
                   { 78, 60, -79, -18, 30, -13, -34, -92, 1, -38}};
 
    for (int x1 = 0; x1 < N; x1++)
    {
        for (int x2 = 0; x2 < N; x2++)
             printf("%d ",M[x1][x2]);
        printf("\n");
    }
 
    int max_i = 0, max_j = 0, count = 0;
    for (int i = 0; i < N; i++)
    {
        bool b = false;
        for (int j = 0; j < N && !b; j++)
            if (M[i][j] == 0) b = true;
 
        if (b == false) count++;
 
        for (int t = 0; t < N; t++)
            if (M[i][t] > M[max_i][max_j])
            {
                int count = 0;
                for (int n1 = 0; n1 < N; n1++)
                    for (int n2 = 0; n2 < N; n2++)
                        if (M[n1][n2] == M[i][t]) count++;
 
                if (count > 1) { max_i = i; max_j = t; }
            }
    }
 
    printf("count = %d max A[%d][%d] = %d\n",count,max_i,max_j,M[max_i][max_j]);
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/54b5db...9a4eb85d9ec0e2
Миниатюры
Произведение элементов массива, расположенных между максимальным и минимальным элементами  
Flashik66
15 / 7 / 7
Регистрация: 05.11.2012
Сообщений: 119
09.11.2012, 01:41  [ТС]     Произведение элементов массива, расположенных между максимальным и минимальным элементами #4
что-то я не могу понять где в скриншоте первое задание первый пункт..Расскажите а то не нахожу..

Добавлено через 2 минуты
Как я понял вы вывели количество отрицательных элементов а не их сумму. Верно?

Добавлено через 54 минуты
Так это я сделал сам. А можно узнать что отзначают данные строки?
#define N 10

template<typename T> void swap(T& n1, T& n2)
{ T _tn = n1; n1 = n2; n2 = _tn; }
Yandex
Объявления
09.11.2012, 01:41     Произведение элементов массива, расположенных между максимальным и минимальным элементами
Ответ Создать тему
Опции темы

Текущее время: 02:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru