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

Вычислить сумму минимальных элементов массивов с помощью функции void f()

30.03.2014, 21:03. Просмотров 1279. Ответов 11
Метки нет (Все метки)

Нужно решить задачу с помощью функции void f(), подскажите а лучше покажите как правильно сделать эту программу.Буду благодарен!
Задано два массива - Х (10) и Y (12). Вычислить величину Z, равную сумме минимальных элементов массивов, деленной на двойное произведение индексов минимальных элементов. Вывести минимальные элементы, их индексах и значение величины Z.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2014, 21:03
Ответы с готовыми решениями:

Процедуры и функции: найти сумму минимальных отрицательных элементов массивов
Помогите пожалуйста написать код на Си) очень нужна ваша помощь! Буду благодарен) Даны массивы...

Вычислить величину Z, которая равняется сумме минимальных элементов массивов, разделенной на двойное произведение индексов минимальных элементов
Заданы два массива - Х(10) и Y(12). Вычислить величину Z, которая равняется сумме минимальных...

Вычислить с помощью функции сумму элементов массива
Задание: ввести в Мемо некоторое количество чисел.Создать динамический масив из отрицательных Мемо....

Найти сумму минимальных элементов массивов А и В
Найти сумму минимальных элементов массивов А и В, которые формируются по правилам: ai =...

11
2376 / 1785 / 389
Регистрация: 15.12.2013
Сообщений: 7,582
30.03.2014, 22:50 2
Gorpash, или глобальные переменные или аргумент по ссылке.
0
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 50
31.03.2014, 00:00  [ТС] 3
агрумент по ссылке
0
15 / 15 / 8
Регистрация: 30.03.2014
Сообщений: 75
31.03.2014, 01:16 4
Лучший ответ Сообщение было отмечено Gorpash как решение

Решение

Для вычислений принята нумерация элементов массива с 1. Массивы могут быть произвольной длинны.
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
#include <iostream>
 
void f (float *arrayX, int sz_arrayX, float *arrayY, int sz_arrayY)
{
    float minX = arrayX[0];
    int minX_id = 1;
    float minY = arrayY[0];
    int minY_id = 1;
    float Z;
 
    for (int i = 1; i < sz_arrayX; ++i)
    {
        if (minX > arrayX[i])
        {
            minX = arrayX[i];
            minX_id = i+1;
        }
    }
    
    for (int i = 1; i < sz_arrayY; ++i)
    {
        if (minY > arrayY[i])
        {
            minY = arrayY[i];
            minY_id = i+1;
        }
    }
    
    Z = (minX + minY)/(2*minX_id*minY_id);
 
    std::cout << "Min in X\t" << minX << std::endl;
    std::cout << "X Min index\t" << minX_id << std::endl;
    std::cout << "Min in Y\t" << minY << std::endl;
    std::cout << "Y Min index\t" << minY_id << std::endl;
    std::cout << "Z\t\t" << Z << std::endl;
}
 
int main ()
{
    float X[] = {17, 8, 31, 14, 115, 67, 79, 18, 93, 104};
    float Y[] = {8, 12, 53, 18, 5, 116, 74, 82, 192, 104, 161, 1};
    
    f(X, (sizeof X)/(sizeof (float)), Y, (sizeof Y)/(sizeof (float)));
    
    return 0;
}
1
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 50
31.03.2014, 08:18  [ТС] 5
Можешь еще комментарии поставить чтобы я понял как работает программа. Буду благодарен.
0
Почетный модератор
Эксперт С++
5836 / 2843 / 390
Регистрация: 01.11.2011
Сообщений: 6,881
31.03.2014, 08:59 6
intern, наверное что-то типа того имелось в виду:
код
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
#include <iostream>
 
void f (float *arrayX, int sz_arrayX, float *arrayY, int sz_arrayY, float& result)
{
    float minX = arrayX[0];
    int minX_id = 1;
    float minY = arrayY[0];
    int minY_id = 1;
    //float Z;
 
    for (int i = 1; i < sz_arrayX; ++i)
    {
        if (minX > arrayX[i])
        {
            minX = arrayX[i];
            minX_id = i+1;
        }
    }
 
    for (int i = 1; i < sz_arrayY; ++i)
    {
        if (minY > arrayY[i])
        {
            minY = arrayY[i];
            minY_id = i+1;
        }
    }
 
    result/*Z*/ = (minX + minY)/(2*minX_id*minY_id);
 
    /*std::cout << "Min in X\t" << minX << std::endl;
    std::cout << "X Min index\t" << minX_id << std::endl;
    std::cout << "Min in Y\t" << minY << std::endl;
    std::cout << "Y Min index\t" << minY_id << std::endl;
    std::cout << "Z\t\t" << Z << std::endl;*/
}
 
int main ()
{
    float X[] = {17, 8, 31, 14, 115, 67, 79, 18, 93, 104};
    float Y[] = {8, 12, 53, 18, 5, 116, 74, 82, 192, 104, 161, 1};
 
    float res;
 
    f(X, (sizeof X)/(sizeof (float)), Y, (sizeof Y)/(sizeof (float)), res);
 
    std::cout << res;
    std::cin.ignore();
    return 0;
}
0
15 / 15 / 8
Регистрация: 30.03.2014
Сообщений: 75
31.03.2014, 11:20 7
SatanaXIII, но тогда лучше res сделать массивом
Цитата Сообщение от Gorpash Посмотреть сообщение
Вывести минимальные элементы, их индексах и значение величины Z.
Gorpash
Кликните здесь для просмотра всего текста

40, 41 - объявление исходных массивов
43 - вызов функции f. Аргументы - массивы X, Y и их размеры

5-9 - объявление переменных для вычисления
11-18 и 20-27 - нахождение наименьших элементов и их индексов для X и Y
29 - вычисление Z
31-35 - вывод результатов


Как я могу отредактировать свое сообщение?
0
Почетный модератор
Эксперт С++
5836 / 2843 / 390
Регистрация: 01.11.2011
Сообщений: 6,881
31.03.2014, 14:09 8
Цитата Сообщение от intern Посмотреть сообщение
но тогда лучше res сделать массивом
Зачем для хранения одного числа массив?

Цитата Сообщение от intern Посмотреть сообщение
Как я могу отредактировать свое сообщение?
Редактировать свое сообщение можно в течении пяти минут после отправки.
0
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 50
01.04.2014, 00:47  [ТС] 9
что значит sz_array Х, У ?
0
15 / 15 / 8
Регистрация: 30.03.2014
Сообщений: 75
01.04.2014, 00:52 10
Количество элементов в массивах X и Y. В данном примере 10 и 12 соответственно.
C++
1
sz_arrayХ = (sizeof X)/(sizeof (float))
1
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 50
01.04.2014, 21:03  [ТС] 11
C++
1
f(X, (sizeof X)/(sizeof (float)), Y, (sizeof Y)/(sizeof (float)), res);
- - объясните пожалуйста эту строку я не очень понял.
0
Почетный модератор
Эксперт С++
5836 / 2843 / 390
Регистрация: 01.11.2011
Сообщений: 6,881
02.04.2014, 08:39 12
Цитата Сообщение от Gorpash Посмотреть сообщение
объясните пожалуйста эту строку
В этой строке вызывается функция f.
В эту функцию через запятую передаются параметры, записанные в скобках: указатель на массив X, размер массива X, указатель на массив Y, количество элементов массива Y, и переменная для вывода результата res.
Количество элементов получается следующим образом: (sizeof X)/(sizeof (float)) - размер массива делится на размер одного элемента.
Переменная для вывода результата передается в функцию по ссылке ( float &result ), следовательно изменение ее внутри функции приведет к ее изменению и вне. Такой механизм возврата значения из функции.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2014, 08:39

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

Вычислить сумму отрицательных элементов массивов в функции. [CPP]
Вычислить суммы отрицательных элементов массивов X(N), Y(M), Z(K). Сумму вычислять в функции....

Вычислить с помощью функции сумму отрицательных элементов массива
ввести в Memo некоторое количество чисел. создать динамический массив из двузначных чисел memo....

С помощью рекурсивной функции вычислить сумму элементов одномерного массива
С помощью рекурсивной функции вычислить сумму элементов одномерного массива. Есть примеры но...

С помощью рекурсивной функции вычислить сумму элементов одномерного массива
С помощью рекурсивной функции вычислить сумму элементов одномерного массива,помогите...


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

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

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