Как передать одномерный массив из функции его формирования в функцию его вывода? Есть функция формирования массива 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();
}
Двумерный массив выводится нормально, одномерный нет.