Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2023, 21:55   #1
brodnik
Пользователь
 
Регистрация: 28.01.2023
Сообщений: 35
По умолчанию С++, функция, массивы.

Help!
Функция должна получить данные с 2 массивов, выполнить действие (например сложить) и поместить результат в третий массив.

double sum(double j[], double n[], double m[])
{
for (i = 0; i < 3; i++)
{
j[i] = n[i] + m[i];
}

}

int main()
{
setlocale(0, "");


c = sum(array123[1], array223[1], array323[1]);

cout << c << " ";
return 0;
}

Пробовал со звёздочками
double sum(double*j[], double*n[], double*m[])
Не помогло, ругается нехорошими словами.

Не получается сделать отступы. В редакторе есть, при сохранении пропадают. Извините, если что.

Последний раз редактировалось brodnik; 31.01.2023 в 22:07.
brodnik вне форума Ответить с цитированием
Старый 31.01.2023, 23:38   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Чтобы отступы не пропадали, нужно код обрамить тегами CODE (соответств. кнопка есть)

Последний раз редактировалось digitalis; 31.01.2023 в 23:42.
digitalis вне форума Ответить с цитированием
Старый 01.02.2023, 00:40   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

У вас вообще черт-те что
Хотя бы это
Код:
double sum(double j[], double n[], double m[])
{
for (i = 0; i < 3; i++)  // кто такой i , где объявлен ?
{
j[i] = n[i] + m[i];
}
}  // а где return, что вообще функция возвращает
Код:
 c = sum(array123[1], array223[1], array323[1]);  // а функция sum непонятно что возвращает
Так что сначала определитесь, что вам надо -
- или считать сумму элементов массивов
- или сформировать массив сумм двух других массивов.
type_Oleg вне форума Ответить с цитированием
Старый 01.02.2023, 14:25   #4
brodnik
Пользователь
 
Регистрация: 28.01.2023
Сообщений: 35
По умолчанию

функция попарно суммирует элементы массивов 2 и 3 (n и m) и складывает их в массив 1 (j).
i была определена выше, для примера переделал.
Код:
double sum(double* j[], double* n[], double* m[])
{
    for (int i = 0; i < 3; i++)
    {
        j[i] = n[i] + m[i];
    }
    
}   

int main()
{
    setlocale(0, "");


        double c = sum(array1[1], array2[1], array3[1]);

        cout << c << " ";

Последний раз редактировалось brodnik; 01.02.2023 в 14:30.
brodnik вне форума Ответить с цитированием
Старый 01.02.2023, 15:00   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
void sum(double j[], double n[], double m[], int s)
{
    for (int i = 0; i < s; i++)
        j[i] = n[i] + m[i];
}

int main()
{
    const int s = 3;
    double a[s], b[s], c[s];
    for (int i = 0; i < s; i++)
    {
        a[i] = i;
        b[i] = i;
    }
    sum(c, a, b, s);
    for (int i = 0; i < s; i++)
        cout << a[i] << " + " << b[i] << " = " << c[i] << endl;
    return 0;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 01.02.2023, 16:22   #6
brodnik
Пользователь
 
Регистрация: 28.01.2023
Сообщений: 35
По умолчанию

Так просто, когда кто то сделал.
СПАСИБО!!!
brodnik вне форума Ответить с цитированием
Старый 05.02.2023, 13:24   #7
brodnik
Пользователь
 
Регистрация: 28.01.2023
Сообщений: 35
По умолчанию

Малость усложнил задачу и опять плаваю.
Функция должна перемножить значения одномерного массива на значения двумерного, заполненного рандомными. Для наглядности после каждого шага результат вывожу на экран. Почему то не изменяет значение счетчика [i].
Код:
#include <iostream>
#include <stdlib.h>
#include <time.h>
double proizved[2];
const int s = 2;
const int q = 10;
double ar1[2]={2,3};                    // массив значений входов 1-го слоя
double ar12[10][2];       // массив значений весов 1-го нейрона с 1-го слоя на 2-й
double ar2[20]; 

double FUN(int s, int q, double n[], double m[][2])
{
    for (int i = 0; i < q; i++)
    {   
        for (int j = 0; j < s; j++)
        {
            proizved[j] = n[j] * m[i][j];
            i = i + 1;
            cout << "proizved[" << j << "] : " << proizved[j] << " = " << "n[" << j << "]" << n[j] << " X " << "m[" << i << "][" << j << "]" << m[i][j] << endl;
int main()
{
    setlocale(0, "");
 //----------------------------------------------------------------------------------------------
    srand(time(NULL));
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 2; j++)
        {
            ar12[i][j] = 1.0 * rand() / (float)RAND_MAX;     
            cout << "ar12[" <<i<<"]["<<j<<"] = "<< ar12[i][j] << endl;
        }        
    }
    for (int i = 0; i < 10; i++)
        {
            ar2[i] = FUN(2,10, ar1, ar12);
            cout << "ar2[" << i << "]" << " = " << ar2[i] << "  " << endl;
        }
}
 //-----------------------------------------------------------------------------------------------

Последний раз редактировалось brodnik; 05.02.2023 в 20:56.
brodnik вне форума Ответить с цитированием
Старый 05.02.2023, 13:48   #8
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Про указатели читаем.

main должен быть после всех функций.

Последний раз редактировалось BDA; 06.02.2023 в 15:07.
Cuprum5 вне форума Ответить с цитированием
Старый 05.02.2023, 14:25   #9
brodnik
Пользователь
 
Регистрация: 28.01.2023
Сообщений: 35
По умолчанию

А он и есть после всех. Рандом не в виде функции, а напрямую.
Про указатели я догадался, но не получается реализовать. Visual ругается. Вы не могли бы поправить код? Заранее спасибо.
brodnik вне форума Ответить с цитированием
Старый 05.02.2023, 17:27   #10
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Закройте тогда циклы и функцию.
Cuprum5 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы С++.Функция не принимает 0 аргументов!!! Tat0107 Visual C++ 3 20.03.2021 15:28
Функция и одномерные массивы с условием Андрюшатина Помощь студентам 15 05.02.2015 00:43
Задачи visual basic(массивы и функция) karinka777 Помощь студентам 1 22.12.2011 10:00
Функция memcpy и массивы. Corvette Общие вопросы C/C++ 2 26.08.2011 21:16
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50