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

Поиск минимального элемента - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Mirazhana
1 / 1 / 0
Регистрация: 04.09.2012
Сообщений: 94
02.10.2013, 12:40     Поиск минимального элемента #1
Доброго времени суток. Помогите пожалуйста с программой, вот задание:
Кликните здесь для просмотра всего текста
В одномерном массиве, состоящим из n вещественных элементов, вычислить:
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "iostream"
#include "time.h"
#include "stdlib.h"
 
using namespace std;
 
//Функция заполнения массива
void fill(int n, float mas[])
{
    for (int i = 0; i < n; i++)
    {
        mas[i] = -50 + (float)(rand() %100);
    }
    return;
}
//Функция нахождения минимального элемента
int min(int n, float mas[])
{
    if(n == 0)
        return -1;
 
    int min_index = 0;
 
    for(int i = 1; i < n; i++)
        if (mas[i] < mas[min_index])
        min_index = i;
        return min_index;
}
//Функция нахождения суммы до минимального элемента
int sum(int n, float mas[])
{
    int sum_mult = 0;
    for(int i = 1; i < n; i++)
    {
        sum_mult += mas[i];
        if i == min_index;
        return sum_mult;    
    }
}
//Функция вывода массива на экран
void out_mas(int n, float mas[])
{
    for (int i = 0; i < n; i++)
    {
        cout << mas[i] << " ";
    }
    return;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int i = 0;
    int n = 0;
    
    cout << "Введите кол-во элементов массива: ";
    cin >> n;
    float *mas = new float[n];
    cout << endl << endl;
    srand(time(NULL));
 
    fill(n, mas);       //Заполнение массива
    out_mas(n, mas);        //Вывод массива
    min(n, mas);        //Нахождение минимального элемента массива
    sum(n, mas);        //Расчет суммы до минимального элемента
 
    cout << endl << endl;
    cout << "Сумма до минимального элемента равна: " << otr_mult << endl;
    
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
chizz
 Аватар для chizz
975 / 489 / 54
Регистрация: 19.03.2013
Сообщений: 3,047
Записей в блоге: 18
Завершенные тесты: 1
02.10.2013, 12:50     Поиск минимального элемента #2
Сортировка четных/нечетных элементов массива
DmitryM5
Love~
 Аватар для DmitryM5
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 743
Записей в блоге: 1
02.10.2013, 17:58     Поиск минимального элемента #3
Цитата Сообщение от Mirazhana Посмотреть сообщение
Доброго времени суток. Помогите пожалуйста с программой, вот задание:
Кликните здесь для просмотра всего текста
В одномерном массиве, состоящим из n вещественных элементов, вычислить:
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "iostream"
#include "time.h"
#include "stdlib.h"
 
using namespace std;
 
//Функция заполнения массива
void fill(int n, float mas[])
{
    for (int i = 0; i < n; i++)
    {
        mas[i] = -50 + (float)(rand() %100);
    }
    return;
}
//Функция нахождения минимального элемента
int min(int n, float mas[])
{
    if(n == 0)
        return -1;
 
    int min_index = 0;
 
    for(int i = 1; i < n; i++)
        if (mas[i] < mas[min_index])
        min_index = i;
        return min_index;
}
//Функция нахождения суммы до минимального элемента
int sum(int n, float mas[])
{
    int sum_mult = 0;
    for(int i = 1; i < n; i++)
    {
        sum_mult += mas[i];
        if i == min_index;
        return sum_mult;    
    }
}
//Функция вывода массива на экран
void out_mas(int n, float mas[])
{
    for (int i = 0; i < n; i++)
    {
        cout << mas[i] << " ";
    }
    return;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int i = 0;
    int n = 0;
    
    cout << "Введите кол-во элементов массива: ";
    cin >> n;
    float *mas = new float[n];
    cout << endl << endl;
    srand(time(NULL));
 
    fill(n, mas);       //Заполнение массива
    out_mas(n, mas);        //Вывод массива
    min(n, mas);        //Нахождение минимального элемента массива
    sum(n, mas);        //Расчет суммы до минимального элемента
 
    cout << endl << endl;
    cout << "Сумма до минимального элемента равна: " << otr_mult << endl;
    
    system("pause");
    return 0;
}
Быть может в Функции нахождения суммы до минимального элемента
Цикл for с нуля начать?
econ_ciber
3 / 3 / 0
Регистрация: 29.03.2011
Сообщений: 36
02.10.2013, 19:21     Поиск минимального элемента #4
2-ое задание
Сперва находим номер минимального
C++
1
2
3
4
5
6
7
8
double min = 0;
for (int i = 0; i < n; i++)
                {
                    if (mas[i] <= a[min])
                    {
                        min = i;
                    } 
                }
Затем Их сумму
C++
1
2
3
4
5
double sum = 0;
for (int i = 0; i < min; i++)
                {
                      sum += mas[i];
                }
Не знаю, подойдет ли Вам, но я у себя реализовал таким образом.
Yandex
Объявления
02.10.2013, 19:21     Поиск минимального элемента
Ответ Создать тему
Опции темы

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