@whatislov

Как передать одномерный массив из функции его формирования в функцию его вывода?

Как передать одномерный массив из функции его формирования в функцию его вывода? Есть функция формирования массива B по определенным правилам:
int func (int **mas, int n)
{
    int i, j;
    int *masb;

    masb = new int [n];
    for (i =0 ; i < n; i++) {// формирование массива b по условию
            int sum=0;
            if (mas[i][j]<0){
        for (j = i-1; j < n; j++) {
                sum+=mas[i][j];
                masb[i]=sum;
            }
            }
            else{
               for (j = i+1; j < n; j++){
                 sum+=mas[i][j];
                 masb[i]=sum;
               }
            }

        }
        return masb[i];
}

Двумерный массив mas в свою очередь берется из главной программы( где он считывается из файла):
int main()
{
setlocale (0,"RUS");
// создание потоков для чтения и записи
ifstream fin;
ofstream fout;
int n, i, j, **mas,*masb;
// если не прописан путь к файлу infile.txt, то он должен находится в папке с программой
// файл outfile.txt можно не создавать, он будет создан в папке с программой
// связь потоков с файлами для чтения и записи соответственно
fin.open ("infile.txt");
fout.open("outfile.txt");
// проверка - открылся ли файл
if (!fin.is_open()) {
    cout<<"Не найден файл";
}
else { // если файл открылся
    fin>>n; // чтение n
    // создание динамического массива mas
    mas = new int *[n];
    for (i = 0; i < n; i++) {
        mas [i] = new int [n];
    }
    // чтение массива из файла
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
                fin >> mas [i][j];
        }
    }
    // действия с массивом по заданию
    ShowArray(mas,n,masb);//вывод массива
    func(mas,n);
}
fin.close();
fout.close();
return 0;
}

Как мне передать массив masb(одномерный, который формируется по условию в функции func) в функцию ShowArray, чтобы вывести его?
ShowArray выглядит так:
int ShowArray(int **mas,int n,int *masb){
    ifstream fin;
    ofstream fout;
    fin.open ("infile.txt");
    fout.open("outfile.txt");
    cout << "Размерность массива а: " << endl;
    fout << setw (5) << n << setw (5) << n << endl;
    cout << setw (5) << n << setw (5) << n << endl;
    cout << "Массив а:" << endl;
for (int i = 0; i < n; i++) {//вывод двумерного массива
        for (int  j = 0; j < n; j++) {
            fout << setw(8) << mas [i][j];
            cout << setw(8) << mas [i][j];
        }
    cout << endl;
    }
    cout << endl << endl;
    fout << setw(8) << "массив b: " << endl;// вывод одномерного массива
    cout << setw(8) << "массив b: " << endl;
    for (int i = 0; i < n; i++){
        fout << setw(8) << masb [i];
        cout << setw(8) << masb [i];
    }
    cout << endl << endl;
    fin.close();
    fout.close();
}

Двумерный массив выводится нормально, одномерный нет.
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
@DjTolib
func Вы вызываете после ShowArray. И конечно же он не может ничего печатать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы