Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/47: Рейтинг темы: голосов - 47, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 19.04.2010
Сообщений: 9
1

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

19.04.2010, 02:49. Просмотров 8762. Ответов 3
Метки нет (Все метки)

Помогите написать программу. Я работаю с программой MS Visual Studio 2005.

В одномерном массиве, состоящем из п целых элементов, вычислить
1) количество элементов массива, больших С;
2) произведение элементов массива, расположенных после максимального по модулю элемента.
Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом — все положительные (элементы, равные 0, считать положительными).

Буду благодарен любой помощи.)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2010, 02:49
Ответы с готовыми решениями:

Произведение элементов массива расположенных после максимального по модулю элемента (С)
Помогите пожалуйста написать программу. Очень буду Вам благодарен, очень срочно надо. В одномерном...

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

произведение элеменов массива, расположенных после максимального по модулю элемента
здравствуйте!помогите пожалуйста решить задачу: в одномерном массиве состоящем из n...

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

3
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,283
19.04.2010, 05:33 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
#include <iostream>
#include <cmath>
 
void main(){
    int *array, n, i;
    
    std::cout << "Enter size of array: ";
    std::cin >> n;
    array = new int[n];
    
    for(i = 0; i < n; i++){
        std::cout << i << ": ";
        std::cin >> array[i];
    }
//1-----------------------------------------------      
    int c, counter = 0;
    std::cout << "Enter c: ";
    std::cin >> c;
    for(i = 0; i < n; i++)
        if(array[i] > c)
            counter++;
    std::cout << "Elements > c: " << counter;
//2-----------------------------------------------  
    int max = abs(array[0]);
    for(i = 0; i < n; i++)
        if(array[i] > max){
            max = abs(array[i]);
            counter = i;
        }
 
    int mult = 1;
    for(i = counter; i < n; i++)
        mult *= array[i];
    std::cout << "\nMultiplication of elements after max |element|: " << mult;
//3-----------------------------------------------      
    for(i = 0; i < n; i++)
        if(array[i] != 0 && abs(array[i] - 1) > abs(array[i])){
            int tmp = array[i];
            for(int j = 0; j < i; j++)
                array[i - j] = array[i - j - 1];
            array[0] = tmp;
        }
 
    std::cout << "\nReorganised:\n";
    for(i = 0; i < n; i++)
        std::cout << array[i] << ' ';
    std::cout << std::endl;
 
    delete []array;
    system("pause");
}
3
0 / 0 / 0
Регистрация: 19.04.2010
Сообщений: 9
19.04.2010, 19:06  [ТС] 3
Цитата Сообщение от Vorona Посмотреть сообщение
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>
#include <cmath>
 
void main(){
    int *array, n, i;
    
    std::cout << "Enter size of array: ";
    std::cin >> n;
    array = new int[n];
    
    for(i = 0; i < n; i++){
        std::cout << i << ": ";
        std::cin >> array[i];
    }
//1-----------------------------------------------      
    int c, counter = 0;
    std::cout << "Enter c: ";
    std::cin >> c;
    for(i = 0; i < n; i++)
        if(array[i] > c)
            counter++;
    std::cout << "Elements > c: " << counter;
//2-----------------------------------------------  
    int max = abs(array[0]);
    for(i = 0; i < n; i++)
        if(array[i] > max){
            max = abs(array[i]);
            counter = i;
        }
 
    int mult = 1;
    for(i = counter; i < n; i++)
        mult *= array[i];
    std::cout << "\nMultiplication of elements after max |element|: " << mult;
//3-----------------------------------------------      
    for(i = 0; i < n; i++)
        if(array[i] != 0 && abs(array[i] - 1) > abs(array[i])){
            int tmp = array[i];
            for(int j = 0; j < i; j++)
                array[i - j] = array[i - j - 1];
            array[0] = tmp;
        }
 
    std::cout << "\nReorganised:\n";
    for(i = 0; i < n; i++)
        std::cout << array[i] << ' ';
    std::cout << std::endl;
 
    delete []array;
    system("pause");
}
Что то у меня не чего не работает. К примеру препод дал такое: 6 чисел: -10 -20 11 3 4 6 и c=4 . При этом условии не работает сортировка и произведение. Всё равно спс.

PS: Вопрос ещё актуален. Жду помощи )
0
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,283
19.04.2010, 23:37 4
хм
-10 -20 11 3 4 6
c = 4
1) количество элементов массива, больших С;
Elements > c: 2, а именно 6 и 11
2) произведение элементов массива, расположенных после максимального по модулю элемента.
Multiplication of elements after max |element|: 792, а именно после -20(модуль -20 = 20, т.е самое большое число в массиве): 11*3*4*6 = 792
Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом — все положительные (элементы, равные 0, считать положительными).
про сортировку речь не шла, т.е. все отрицатильные в начало, а все положительные и 0 - в конец
Reorganised:
-20 -10 11 3 4 6

насчет произведения, проверил еще раз, вы были правы, замените 23-33 строки на эти:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int max = abs(array[0]);
counter = 0;
for(i = 0; i < n; i++)
        if(abs(array[i]) > max){
                counter = i;
                max = abs(array[i]);
        }
int mult = 1;
for(i = counter+1; i < n; i++)
        mult *= array[i];
if(counter == n-1)
    mult = 0;
std::cout << "\nMultiplication of elements after max |element|: " << mult;
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2010, 23:37

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вычисление произведения элементов массива, расположенных после максимального по модулю элемента
Помогите с кодом. Не работают: 1) вычисление произведения элементов массива, расположенных после...

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

Найти произведение элементов массива, расположенных после минимального по модулю элемента
Всем привет, помогите пожалуйста решить задачку с указателями:) Выдает неверное значение, а ошибку...

Найти произведение элементов массива, расположенные после максимального по модулю элемента
Здравствуйте, помогите пожалуйста решить задачу на С++ Задание (непрерывные последовательности...


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

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

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