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

Возврат массива из функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая определит, сколькими способами он может попасть в магазин, пройдя ровно K шагов http://www.cyberforum.ru/cpp-beginners/thread1035638.html
Магазин (Время: 1 сек. Память: 16 Мб Сложность: 34%) На расстоянии N шагов от магазина стоит человек. Каждую минуту он выбирает, куда сделать шаг: к магазину или в противоположном направлении. Требуется написать программу, которая определит, сколькими способами он может попасть в магазин, пройдя ровно K шагов и оказавшись в магазине только после выполнения последнего шага. Входные данные...
C++ Не могу разобраться с чтением из файла #include "stdafx.h" #include <iostream> #include <conio.h> #include <stdio.h> #include <time.h> #include <fstream> int n,m,i,j,g; FILE *f; http://www.cyberforum.ru/cpp-beginners/thread1035604.html
написать программу, которая. Будет создавать текстовый файл и отобразить его содержимое C++
написать программу, которая. Будет создавать текстовый файл и отобразить его содержимое.
C++ разработать программу создания сложной структуры на примере
1. создать сложную структуру на примере школы 2. создать сложную структуру на примере завода 3. создать сложную структуру на примере магазина 4. создать сложную структуру на примере библиотеки
C++ С++: подсчитать количество знаков и вывести самое большое значение http://www.cyberforum.ru/cpp-beginners/thread1035595.html
Ребята, помогите пожалуйста. Задача такая : нужна программа, подсчитывающая количества знаков ":", ";", "," и вывести количество повторений того знака, который повторяется (простите за тавтологию) чаще всего. Беда в том, что программа выводит ответ только,если чаще всего повторяется ":". Помогите найти ошибку~ Код программы : #include "stdafx.h" #include "iostream" #include "conio.h"...
C++ Описать рекурсивную функцию вычисления значения по формуле Рекурсия подробнее

Показать сообщение отдельно
Bellamy
1 / 1 / 1
Регистрация: 04.02.2014
Сообщений: 13
21.10.2014, 15:05     Возврат массива из функции
Лучше напишу в старой теме.
С данным кодом у меня возникло два вопроса:
1) В функции (31-40 строчки) пытаюсь конвертировать массив из одномерного в двумерный. Предложенный мной способ работает, но вместо троек хочу подставить аргумент in. Естественно ругается на то, что размерность массива должна быть константой. Пробовал несколько вариантов с константами, но ничего не сработало. Что нужно сделать или может другой способ конвертации?
2) После разных преобразований хочу передать из функции массив outN. Мой вариант - заменить void на double и раскоментить return в summator и вызов функции с циклом в main. Но это тоже не работает. Возвращает только первый элемент массива, если забить на цикл.
Не пойму что не так. Заранее спасибо за помощь.
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
73
74
75
#include <iostream>
#include <fstream>
using namespace std;
 
void summator(double[100], double[3], const int, const int, const int);
 
int main()
{   
 
    const int numIn = 3, numH = 4, Ot = 1;
    
    double wt[100] = {0.41, 0.67, 0.34, 0, 0.69, 0.24, 0.78, 0.58, 
    0.62, 0.64, 0.05, 0.45};
 
    double data[3] = {0.19, 0.51, 0.83};
 
    summator(wt, data, numIn, numH, Ot);
    //double massive = summator(wt, data, numIn, numH, Ot);
    
    /*for (int i = 0; i < numH; i++)
    {
        cout << "Massive: " << massive[i] << endl;
    }*/
 
    system("pause");
    return 0;
}
 
void summator(double w[100], double input[3], const int in, const int hd, const int output)
{
    // Конвертирование в двумерный
    double (*ww)[3]=(double(*)[3])w;
    for (int i = 0; i < hd; i++)
    {
        for (int j = 0; j < in; j++)
        {
            cout << ww[i][j] << " ";
            cout << endl;
        }
    }
    // Память
    double **out = new double *[hd];
    for (int i = 0; i < hd; i++)
    {
        out[i] = new double[in];
    }
    // Память
    double *outN = new double [hd];
 
    int count = 0;
 
    for (int i = 0; i < hd; i++)
    {
        double sum = 0.0;
        for (int j = 0; j < in; j++)
        {
            out[i][j] = ww[i][j]*input[j];
            //cout << out[i][j] << endl;
            count++;
            sum += out[i][j];
        }
        outN[i] = sum;
        cout << outN[i] << endl;
    }
 
    //return *outNeuron;
 
    for (int i = 0; i < hd; i++)
        delete[] out[i];
    delete[] out;
    out = NULL;
 
    delete[] outN;
    outN = NULL;
}
 
Текущее время: 03:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru