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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 5.00
blak
9 / 9 / 0
Регистрация: 05.09.2010
Сообщений: 195
27.10.2010, 15:51     Произведение элементов массива, расположенных между максимальным и минимальным элементами #1
9. В одномерном массиве, состоящем из n вещественных элементов, вычислить:
а) сумму отрицательных элементов массива;
б) произведение элементов массива, расположенных между максимальным и
минимальным элементами. Упорядочить элементы массива по возрастанию.
10.В одномерном массиве, состоящем из n вещественных элементов, вычислить:
Практикум по Программированию на ЯВУ - 26 - Байрактаров Б.Р., Ксенофонтов А.С.
а)сумму положительных элементов массива;
б) произведение элементов массива, расположенных между максимальным
по модулю и минимальным по модулю элементами.
Упорядочить элементы массива по убыванию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2010, 15:51     Произведение элементов массива, расположенных между максимальным и минимальным элементами
Посмотрите здесь:

Произведение элементов массива, расположенных между максимальным и минимальным элементами C++
C++ произведение элементов массива, расположенных между максимальным и минимальным элементами.
C++ Произведение элементов массива, расположенных между максимальным и минимальным элементами
C++ Вычислить произведение элементов массива, расположенных между максимальным и минимальным элементами
C++ Произведение элементов массива, расположенных между максимальным и минимальным элементами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
27.10.2010, 16:07     Произведение элементов массива, расположенных между максимальным и минимальным элементами #2
blak,
9.
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
#include <iostream>
#include <algorithm>
#include <numeric>
#include <functional>
 
int main()
{
    double* Arr;
    int N;
    std::cout<<"Enter N: ";
    std::cin>>N;
    Arr=new double[N];
    for(int i=0; i<N; ++i)
       std::cin>>Arr[i];
    double sumneg=0;
    for(int i=0; i<N; ++i)
        if(Arr[i]<0)
           sumneg+=Arr[i];
    double* max=std::max_element(Arr, Arr+N);
    double* min=std::min_element(Arr, Arr+N);
    double mult=0.0;
    if(max>min)
        mult=accumulate(std::min_element(Arr, Arr+N)+1, std::max_element(Arr, Arr+N), 1.0, std::multiplies<double>());
    std::sort(Arr, Arr+N, std::less<double>());
    std::cout<<"Sum of neg "<< sumneg <<'\n'<<
                 "Mult of elements: "<< mult<<'\n';
    std::cout<<"Sorted array\n";
    std::copy(Arr, Arr+N, std::ostream_iterator<double>(std::cout, " "));
    std::cout<<std::endl;
    delete[] Arr;
}
Добавлено через 9 минут
Ух. Не увидел про Си. Ну да ладно. Может кому пригодится.
blak
9 / 9 / 0
Регистрация: 05.09.2010
Сообщений: 195
28.10.2010, 16:15  [ТС]     Произведение элементов массива, расположенных между максимальным и минимальным элементами #3
спасибо,если не трудно сделайте пожалуйста на Си
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
28.10.2010, 16:27     Произведение элементов массива, расположенных между максимальным и минимальным элементами #4
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
#include <stdio.h>
#include <malloc.h>
 
void Sort(double* Arr, int N)
{
    int i, j;
    for(i=0; i<N; ++i)
    {
        for(j=i; j<N; ++j)
        {
            if(Arr[i]>Arr[j])
            {
                 double temp=Arr[i];
                 Arr[i]=Arr[j];
                 Arr[j]=temp;
            }
        }
    }
}
 
int main()
{
    double* Arr;
    int N, i;
    printf("Enter N: ");
    scanf("%d", &N);
    Arr=(double*)malloc(N*sizeof(double));
    for(i=0; i<N; ++i)
       scanf("%lf", &Arr[i]);
    double sumneg=0;
    int max_ind=0, min_ind=0;
    double max=Arr[0], min=Arr[0];
    for(i=0; i<N; ++i)
    {
        if(Arr[i]<0)
           sumneg+=Arr[i];
        if(Arr[i]>max)
        {
            max=Arr[i];
            max_ind=i;
        }
        else if(Arr[i]<max)
        {
            min=Arr[i];
            min_ind=i;
        }
    }
    double mult=1;
    if(min_ind<max_ind)
    {
        for(i=min_ind+1; i<max_ind; ++i)
            mult*=Arr[i];
    }
    Sort(Arr, N);
    printf("%f %f\n", sumneg, mult);
    printf("Sorted array\n");
    for(i=0; i<N; ++i)
        printf("%f ", Arr[i]);
    printf("\n");
    free(Arr);
    return 0;
}
Yandex
Объявления
28.10.2010, 16:27     Произведение элементов массива, расположенных между максимальным и минимальным элементами
Ответ Создать тему
Опции темы

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